自動化運維Ansible使用

自動化運維Ansible使用(按照文檔步驟就能夠操做成功)。
文檔分別坐了安裝Ansible,使用Ansible控制兩臺機器。
特別說明:前面作了pssh爲何還要作一個Ansible的文檔,由於Ansible靈活多變,下面我列舉下它的優點。
一、能夠輸入密碼控制不用作免祕鑰。
二、就算卸載hosts列表也能夠單獨控制一些機器,並能夠對機器作分類。
#####跟着文檔部署的時候必定要仔細看每個字必定要必定要必定要(每個字都很重要)
提示下你們再用ansible redis -m command 模塊執行一些命令的時候有可能失敗能夠改爲使用shell模塊。
下面我作實驗的時候用了兩種方式遠程控制
一、免祕鑰方式
二、輸入密碼方式
#私自轉載請聯繫博主不然一定追究版權 下方有微信
系統環境:










web

IP 節點名稱
192.168.182.150 admin
192.168.182.150 client-1
192.168.182.150 client-2

一、設置三個節點主機名
admin節點執行
正則表達式

[root@localhost ~]# hostnamectl set-hostname admin
[root@localhost ~]# su

client-1節點執行redis

[root@localhost ~]# hostnamectl set-hostname client-1
[root@localhost ~]# su

client-2節點執行shell

[root@localhost ~]# hostnamectl set-hostname client-2
[root@localhost ~]# su

二、安裝Ansible
admin節點執行
apache

[root@admin ~]# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y
[root@admin ~]# yum install ansible -y

三、配置ansible
admin節點執行
修改第20行數字大小默認只能鏈接5臺機器

vim

[root@admin ansible]# vim /etc/ansible/ansible.cfg 
20行 forks          = 20

四、修改ansible-hosts文件
admin節點執行
centos

[root@admin ansible]# vim /etc/ansible/hosts 
[web] #這樣就定義了一個組web是組名稱能夠自定義,能夠根據組名稱來具體控制哪些機器
192.168.182.150
192.168.182.151
[redis] #這樣就定義了一個組redis是組名稱能夠自定義,能夠根據組名稱來具體控制哪些機器
192.168.182.152

五、配置祕鑰鏈接
admin節點執行
bash

[root@admin ansible]# ssh-keygen
##直接回車
[root@admin ansible]# ssh-copy-id -i root@admin
##會有提示輸入密碼
[root@admin ansible]# ssh-copy-id -i root@192.168.182.151
##會有提示輸入密碼
[root@admin ansible]# ssh-copy-id -i root@192.168.182.152
##會有提示輸入密碼

六、查看定義的web組主機磁盤空間
admin節點執行
微信

[root@admin ansible]# ansible web -m command -a 'df -h'
192.168.182.150 | CHANGED | rc=0 >>
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   50G  1.4G   49G    3% /
devtmpfs                 478M     0  478M    0% /dev
tmpfs                    489M  124K  489M    1% /dev/shm
tmpfs                    489M  6.8M  482M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/mapper/centos-home   45G   33M   45G    1% /home
/dev/sda1               1014M  143M  872M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0
192.168.182.151 | CHANGED | rc=0 >>
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   50G 1019M   49G    2% /
devtmpfs                 478M     0  478M    0% /dev
tmpfs                    489M     0  489M    0% /dev/shm
tmpfs                    489M  6.8M  482M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/mapper/centos-home   45G   33M   45G    1% /home
/dev/sda1               1014M  143M  872M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0

六、查看定義的redis組主機磁盤空間
admin節點執行
app

[root@admin ansible]# ansible redis -m command -a 'df -h' 
192.168.182.152 | CHANGED | rc=0 >>
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   17G  1.1G   16G    7% /
devtmpfs                 478M     0  478M    0% /dev
tmpfs                    489M     0  489M    0% /dev/shm
tmpfs                    489M  6.8M  482M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/sda1               1014M  125M  890M   13% /boot
tmpfs                     98M     0   98M    0% /run/user/0

七、查看全部組主機磁盤空間
admin節點執行

[root@admin ansible]# ansible all -m command -a 'df -h' 
192.168.182.152 | CHANGED | rc=0 >>
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   17G  1.1G   16G    7% /
devtmpfs                 478M     0  478M    0% /dev
tmpfs                    489M     0  489M    0% /dev/shm
tmpfs                    489M  6.8M  482M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/sda1               1014M  125M  890M   13% /boot
tmpfs                     98M     0   98M    0% /run/user/0
192.168.182.151 | CHANGED | rc=0 >>
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   50G 1019M   49G    2% /
devtmpfs                 478M     0  478M    0% /dev
tmpfs                    489M     0  489M    0% /dev/shm
tmpfs                    489M  6.8M  482M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/mapper/centos-home   45G   33M   45G    1% /home
/dev/sda1               1014M  143M  872M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0
192.168.182.150 | CHANGED | rc=0 >>
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   50G  1.4G   49G    3% /
devtmpfs                 478M     0  478M    0% /dev
tmpfs                    489M  124K  489M    1% /dev/shm
tmpfs                    489M  6.8M  482M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/mapper/centos-home   45G   33M   45G    1% /home
/dev/sda1               1014M  143M  872M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0

八、使用正則表達式來控制主機(必須在hosts文件裏寫入主機地址不然執行失敗)
admin節點執行

[root@admin ansible]# ansible 192* -m command -a 'df -h'
192.168.182.151 | CHANGED | rc=0 >>
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   50G 1019M   49G    2% /
devtmpfs                 478M     0  478M    0% /dev
tmpfs                    489M     0  489M    0% /dev/shm
tmpfs                    489M  6.8M  482M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/mapper/centos-home   45G   33M   45G    1% /home
/dev/sda1               1014M  143M  872M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0
192.168.182.152 | CHANGED | rc=0 >>
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   17G  1.1G   16G    7% /
devtmpfs                 478M     0  478M    0% /dev
tmpfs                    489M     0  489M    0% /dev/shm
tmpfs                    489M  6.8M  482M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/sda1               1014M  125M  890M   13% /boot
tmpfs                     98M     0   98M    0% /run/user/0
192.168.182.150 | CHANGED | rc=0 >>
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   50G  1.4G   49G    3% /
devtmpfs                 478M     0  478M    0% /dev
tmpfs                    489M  124K  489M    1% /dev/shm
tmpfs                    489M  6.8M  482M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/mapper/centos-home   45G   33M   45G    1% /home
/dev/sda1               1014M  143M  872M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0

九、查看有哪些主機
admin節點執行

[root@admin ansible]# ansible all --list-hosts
  hosts (3):
    192.168.182.150
    192.168.182.151
    192.168.182.152

十、也能夠指定自定義文件(在不適用默認的hosts文件的狀況下)
admin節點執行

[root@admin ansible]# ansible -i /etc/ansible/zhiding redis -m command -a 'df -h' 

十一、也能夠在沒有祕鑰的狀況下執行遠程命令
admin節點執行

[root@admin ansible]# ansible -K web -m command -a 'df -h'
BECOME password:  ##這裏是讓你輸入密碼(有一個前提你控制的全部主機密碼應該是一致的)
192.168.182.151 | CHANGED | rc=0 >>
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   50G 1019M   49G    2% /
devtmpfs                 478M     0  478M    0% /dev
tmpfs                    489M     0  489M    0% /dev/shm
tmpfs                    489M  6.8M  482M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/mapper/centos-home   45G   33M   45G    1% /home
/dev/sda1               1014M  143M  872M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0
192.168.182.150 | CHANGED | rc=0 >>
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   50G  1.4G   49G    3% /
devtmpfs                 478M     0  478M    0% /dev
tmpfs                    489M  124K  489M    1% /dev/shm
tmpfs                    489M  6.8M  482M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/mapper/centos-home   45G   33M   45G    1% /home
/dev/sda1               1014M  143M  872M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0

十二、也能夠寫一個腳原本定義要執行的命令和要在哪臺主機執行
admin節點執行

[root@admin ansible]# vim test.yaml
- hosts: redis
  remote_user: root
  tasks:
  - name: yum apache
    shell: yum -y install httpd

1三、指定腳本文件使用Ansible批量執行
admin節點執行

[root@admin ansible]# ansible-playbook test.yaml 

PLAY [redis] ********************************************************************************************************************

TASK [Gathering Facts] **********************************************************************************************************
ok: [192.168.182.152]

TASK [yum apache] ***************************************************************************************************************
[WARNING]: Consider using the yum module rather than running 'yum'.  If you need to use command because yum is insufficient you
can add 'warn: false' to this command task or set 'command_warnings=False' in ansible.cfg to get rid of this message.
changed: [192.168.182.152]

PLAY RECAP **********************************************************************************************************************
192.168.182.152            : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

1四、在client段查看是否安裝了httpd
client-2節點執行

[root@client-2 ~]# rpm -qa|grep httpd 
httpd-tools-2.4.6-97.el7.centos.x86_64
httpd-2.4.6-97.el7.centos.x86_64

wx:a1362623821

相關文章
相關標籤/搜索