自动化运维Ansible使用

自动化运维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 [email protected]
##会有提示输入密码
[root@admin ansible]# ssh-copy-id -i [email protected]
##会有提示输入密码

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节点执行

扫描二维码关注公众号,回复: 12141887 查看本文章
[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

猜你喜欢

转载自blog.csdn.net/zeorg/article/details/111957935