自動化運維Ansible使用(按照檔案步驟就可以操作成功),
檔案分別坐了安裝Ansible,使用Ansible控制兩臺機器,
特別說明:前面做了pssh為什么還要做一個Ansible的檔案,因為Ansible靈活多變,下面我列舉下它的優勢,
1、可以輸入密碼控制不用做免秘鑰,
2、就算卸載hosts串列也可以單獨控制一些機器,并可以對機器做分類,
#####跟著檔案部署的時候一定要仔細看每一個字一定要一定要一定要(每一個字都很重要)
提示下大家再用ansible redis -m command 模塊執行一些命令的時候有可能失敗可以改成使用shell模塊,
下面我做實驗的時候用了兩種方式遠程控制
1、免秘鑰方式
2、輸入密碼方式
#私自轉載請聯系博主否則必定追究著作權 下方有微信
系統環境:
| IP | 節點名稱 |
|---|---|
| 192.168.182.150 | admin |
| 192.168.182.150 | client-1 |
| 192.168.182.150 | client-2 |
1、設定三個節點主機名
admin節點執行
[root@localhost ~]# hostnamectl set-hostname admin
[root@localhost ~]# su
client-1節點執行
[root@localhost ~]# hostnamectl set-hostname client-1
[root@localhost ~]# su
client-2節點執行
[root@localhost ~]# hostnamectl set-hostname client-2
[root@localhost ~]# su
2、安裝Ansible
admin節點執行
[root@admin ~]# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y
[root@admin ~]# yum install ansible -y
3、配置ansible
admin節點執行
修改第20行數字大小默認只能連接5臺機器
[root@admin ansible]# vim /etc/ansible/ansible.cfg
20行 forks = 20
4、修改ansible-hosts檔案
admin節點執行
[root@admin ansible]# vim /etc/ansible/hosts
[web] #這樣就定義了一個組web是組名稱可以自定義,可以根據組名稱來具體控制哪些機器
192.168.182.150
192.168.182.151
[redis] #這樣就定義了一個組redis是組名稱可以自定義,可以根據組名稱來具體控制哪些機器
192.168.182.152
5、配置秘鑰連接
admin節點執行
[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
##會有提示輸入密碼
6、查看定義的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
6、查看定義的redis組主機磁盤空間
admin節點執行
[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
7、查看所有組主機磁盤空間
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
8、使用正則運算式來控制主機(必須在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
9、查看有哪些主機
admin節點執行
[root@admin ansible]# ansible all --list-hosts
hosts (3):
192.168.182.150
192.168.182.151
192.168.182.152
10、也可以指定自定義檔案(在不適用默認的hosts檔案的情況下)
admin節點執行
[root@admin ansible]# ansible -i /etc/ansible/zhiding redis -m command -a 'df -h'
11、也可以在沒有秘鑰的情況下執行遠程命令
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
12、也可以寫一個腳本來定義要執行的命令和要在哪臺主機執行
admin節點執行
[root@admin ansible]# vim test.yaml
- hosts: redis
remote_user: root
tasks:
- name: yum apache
shell: yum -y install httpd
13、指定腳本檔案使用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
14、在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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/243242.html
標籤:其他
