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

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

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一共爲咱們提供了七個指令:ansibleansible-docansible-galaxyansible-lintansible-playbookansible-pullansible-vault

blob.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.配置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來指定路徑

blob.png

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

方法一:

1.從新鏈接本身

[root@localhost ~]# ssh 192.168.122.22

blob.png

2.exit登出

[root@localhost ~]# exit

3.從新執行

blob.png

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

blob.png

方法二:

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

blob.png

方法三:

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

#host_key_checking = False#去掉。

blob.png

5.使用all查看hosts中全部機器的狀況

blob.png

blob.png

6.ansible的配置文件

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

7.定義多個主機與組能夠進行與或非的邏輯關係運算

:或         !非         &

8.ssh的免祕鑰互信

192.168.122.22上操做

blob.png

[root@localhost ~]# ssh-copy-id 192.168.122.22       //給本身拷

驗證是否成功

blob.png

6.ansible經常使用模塊

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

blob.png

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

blob.png

查看:

blob.png

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的磁盤

blob.png

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

blob.png

相關文章
相關標籤/搜索