天天看點

企業輕量級自動化運維工具—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一共為我們提供了七個指令:ansible、ansible-doc、ansible-galaxy、ansible-lint、ansible-playbook、ansible-pull、ansible-vault 。

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

1.列出所有已安裝的子產品

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

2.檢視某一個子產品的用法

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

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

3.ansible-playbook

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

4.配置hosts和group

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來指定路徑

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

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

方法一:

1.重新連接配接自己

[root@localhost ~]# ssh 192.168.122.22

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

2.exit登出

[root@localhost ~]# exit

3.重新執行

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

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

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

方法二:

在服務端:進行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

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

方法三:

将#host_key_checking = False的#去掉。

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

5.使用all檢視hosts中所有機器的情況

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

6.ansible的配置檔案

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

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

:或         !非         &與

8.ssh的免秘鑰互信

在192.168.122.22上操作

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

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

驗證是否成功

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

6.ansible常用子產品

1.ping子產品:測試主機是否能ping通

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

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' 連結

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

檢視:

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

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(常見的錯誤解決,免秘鑰互信,常用的子產品)

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

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

繼續閱讀