企業輕量級自動化運維工具—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 。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5STBVFOf1WQJ5We4lDZvwFMxcTMwIzLclTMwAjNxMzLcZTMz8CXzJXZzV3LcNXZslmZvwVbvNmLy9GdpRWZ1MTMugGdhB3YpB3X39Fcvw1LcpDc0RHaiojIsJye.png)
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來指定路徑
這裡我們檢視時會報錯是因為它沒有加載到自身。有三種解決辦法。
方法一:
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
方法三:
将#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的磁盤
執行已有指令時則自動跳過所有,結束。