ansible自动化
ansible安装 #需要配置网络源
[root@ken yum.repos.d]# yum install ansible -y
ansible使用格式
ansible 主机 -m 模块 -a “parameters”
ansible常用模块
command 执行命令
yum 管理rpm包
service 管理服务程序
shell 万能模块
copy 复制文件
ansible使用
第一步:把需要管理的节点IP写进/etc/ansible/hosts
[ken]
192.168.64.5
192.168.64.7
第二步:往需要管理的节点发送秘钥
[root@ken ~]# ssh-keygen
[root@ken ~]# ssh-copy-id 192.168.64.5
第三步:使用ansible
指定节点有三种方法
方法一:
[root@ken ~]# ansible ken -a “ip a”
方法二:
[root@ken ~]# ansible all -a “ip a”
方法三:
[root@ken ~]# ansible 192.168.64.5 -a “ip a”
例子1:默认使用command模块去挂载光盘
[root@ken ~]# ansible all -a “mount /dev/cdrom /mnt”
例子2:yum模块使用详解
[root@ken ~]# ansible all -m yum -a “name=unzip state=present”
all 指定管理的主机,all表示hosts文件里面定义的所有的主机
-m 指定模块名
yum 模块名
-a 指定模块的参数
例子3:service模块
[root@ken ~]# ansible all -m service -a “name=httpd state=restarted”
例子4:shell万能模块
[root@ken ~]# ansible all -m shell -a “ss -tnl | grep 80”
192.168.64.7 | CHANGED | rc=0 >>
LISTEN 0 128 :::80 ::?
192.168.64.5 | CHANGED | rc=0 >>
LISTEN 0 128 *:80 :
例子5:copy模块
[root@ken ~]# ansible all -m copy -a “src=/root/test2 dest=/root”
ansible剧本playbook
例子1:使用ansible剧本安装部署apache
第一步:编写剧本
[root@ken ~]# cat test.yml
– hosts: all
tasks:
– yum: name=httpd state=present
– service: name=httpd state=restarted
– copy: src=/root/index.html dest=/var/www/html
第二步:准备网页默认文件
[root@ken ~]# echo “test for ansible” > index.html
第三步:模拟执行剧本
[root@ken ~]# ansible-playbook -C test.yml
第四步:执行剧本
[root@ken ~]# ansible-playbook test.yml
第五步:浏览器访问