1.ansible簡介vim
ansible是「Ansible is Simple IT Automation」——簡單的自動化IT工具。它能夠作到自動化部署APP;自動化管理配置項;自動化的持續交付;自動化的(AWS)雲服務管理。可實現多節點的軟件部署,執行特定任務並進行配置管理。centos
2.安裝前準備運維
1.準備三臺主機ssh
192.168.122.22 服務端ide
192.168.122.21 客戶端工具
192.168.122.18 客戶端測試
2.時間同步spa
3.關閉防火牆和SELinuxrest
3.安裝ip
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 。
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
方法三:
[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的磁盤
執行已有命令時則自動跳過全部,結束。