1. 程式人生 > >企業輕量級自動化運維工具—ansible(常見的錯誤解決,免秘鑰互信,常用的模塊)

企業輕量級自動化運維工具—ansible(常見的錯誤解決,免秘鑰互信,常用的模塊)

企業 輕量級 自動化

企業輕量級自動化運維工具—ansible

1.ansible簡介

ansible是“Ansible is Simple IT Automation”——簡單的自動化IT工具。它可以做到自動化部署APP;自動化管理配置項;自動化的持續交付;自動化的(AWS)雲服務管理。可實現多節點的軟件部署,執行特定任務並進行配置管理。

2.安裝前準備

1.準備三臺主機

192.168.122.22 服務端

192.168.122.21 客戶端

192.168.122.18 客戶端

2.時間同步

3.關閉防火墻和SELinux

3.安裝

1.配置yum

[root@localhost ~]# yum install -y

http://mirrors.aliyun.com/centos/7.3.1611/extras/x86_64/Packages/epel-release-7-9.noarch.rpm

2.安裝

[root@localhost ~]# yum install -y ansible

3.查看幫助

[root@localhost ~]# ansible –h

4.查看版本

[root@localhost ~]# ansible --version

5.ansible模塊

ansible是指令核心部分,其主要用於執行ad-hoc命令,即單條命令。默認後面需要跟主機和選項部分,默認不指定模塊時,使用的是command模塊。安裝完

ansible後,發現ansible一共為我們提供了七個指令:ansibleansible-docansible-galaxyansible-lintansible-playbookansible-pullansible-vault

技術分享

1.列出所有已安裝的模塊

[root@localhost ~]# ansible-doc –l

2.查看某一個模塊的用法

[root@localhost ~]# ansible-doc –h

[root@localhost ~]# ansible-doc -s yum //查看yum的用法

3.ansible-playbook

該指令是使用最多的指令,其通過讀取playbook 文件後,執行相應的動作。

4.配置hostsgroup

192.168.122.22 root用戶 密碼123456

192.168.122.18 user1用戶 密碼user1

192.168.122.21 user2用戶 密碼123 端口2222

[root@localhost ~]# vim /etc/ssh/ssh_config //改變端口的文件

[root@localhost ~]# systemctl restart sshd //重啟服務

[root@localhost ~]# vim hosts //默認的hosts文件在/etc/hosts裏,這裏我們可以用-i來指定路徑

技術分享

這裏我們查看時會報錯是因為它沒有加載到自身。有三種解決辦法。

方法一:

1.重新連接自己

[root@localhost ~]# ssh 192.168.122.22

技術分享

2.exit登出

[root@localhost ~]# exit

3.重新執行

技術分享

此時會發現執行成功。這是因為多了一個文件

技術分享

方法二:

在服務端:進行ssh連接時,可以使用-o參數將StrictHostKeyChecking設置為no,使用ssh連接時避免首次連接時讓輸入yes/no部分的提示。

[root@localhost .ssh]# vim /etc/ansible/ansible.cfg

#ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s 修改為ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no

技術分享

方法三:

[root@localhost .ssh]# vim /etc/ansible/ansible.cfg

#host_key_checking = False#去掉。

技術分享

5.使用all查看hosts中所有機器的情況

技術分享

技術分享

6.ansible的配置文件

[root@localhost ~]# vim /etc/ansible/ansible.cfg

7.定義多個主機與組可以進行與或非的邏輯關系運算

:或 !非 &

8.ssh的免秘鑰互信

192.168.122.22上操作

技術分享

[root@localhost ~]# ssh-copy-id 192.168.122.22 //給自己拷

驗證是否成功

技術分享

6.ansible常用模塊

1.ping模塊:測試主機是否能ping

技術分享

2.setup模塊:獲取主機信息

[root@localhost ~]# ansible-doc -s setup //查看幫助

[root@localhost ~]# ansible localhost -m setup //查看內存信息

[root@localhost ~]# ansible -i hosts arethon -m setup //查看所有信息

[root@localhost ~]# ansible -i hosts arethon -m setup -a ‘filter=ansible_*ipv4‘ //過濾ipv4的信息

3.file模塊:遠程主機上的文件操作

[root@localhost ~]# ansible-doc -s file //查看幫助

[root@localhost ~]# ansible localhost -m file -a ‘src=/etc/hosts dest=/tmp/hosts state=link‘ 鏈接

技術分享

查看:

技術分享

4.copy模塊

[root@localhost ~]# ansible-doc -s copy //查看幫助

[root@localhost ~]# ansible -i hosts arethon -m copy -a ‘src=test.txt dest=/tmp‘ //test.txt文件拷貝到另外兩臺主機上

5.command模塊

[root@localhost ~]# ansible -i hosts 192.168.122.18 -a ‘df -h‘ //查看192.168.122.18的磁盤

技術分享

執行已有命令時則自動跳過所有,結束。

技術分享




企業輕量級自動化運維工具—ansible(常見的錯誤解決,免秘鑰互信,常用的模塊)