ansible安装及ssh免密登录请参考:https://blog.csdn.net/hdyebd/article/details/90295314
ansible-playbook //剧本 ansible-doc //获取帮助文档
ansible playbook采用YAML语法
YAML的语法和其他高阶语言类似并且可以简单表达清单、散列表、标量等数据结构。(列表用横杆表示,键值对用冒号分割,键值对里又可以嵌套另外的键值对)
YAML文件扩展名通常为.yaml或者.yml。
核心组件
hosts:主机IP或域名tasks:任务variables:变量templates:模板handlers:处理器roles:角色hosts 定义单个主机或组,vars定义变量,remote_user定义执行命令的远程用户,tasks定义执行哪些命令,handlers定义调用哪些处理器
ansible:192.168.192.138 client:192.168.192.137 client:192.168.192.138
因为不确定客户端有没有nginx包,所以要对客户端进行epel配置,从服务端将文件拷贝过去。 服务端epel配置
[root@localhost ~]# vim /etc/yum.repos.d/epel.repo [epel] name=epel_name baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/ gpgcheck=0 #写一个文件模块,规定在哪几台机器上操作,这里使用all模块 [root@localhost ~]# cat /etc/ansible/hosts [test] 192.168.192.137 [web] 192.168.192.139 [all] 192.168.192.137 192.168.192.139 #将服务端文件拷贝到client端 [root@localhost ~]# ansible -i /etc/ansible/hosts all -m copy -a "src=//etc/yum.repos.d/epel.repo dest=/etc/yum.repos.d/epel.repo owner=root group=root mode=644 backup=yes"写一个playbook剧本
[root@localhost ~]# cat /etc/ansible/playbook/yum_nginx.yml --- - hosts: 192.168.192.137 192.168.192.139 tasks: - name: install nginx yum: name=nginx state=present - name: copy nginx.conf copy: src=/etc/nginx/nginx.conf.j2 dest=/etc/nginx/nginx.conf - name: start nginx service: name=nginx state=started enabled=yes #执行此剧本,使其在client实现 [root@localhost ~]# ansible-playbook /etc/ansible/playbook/yum_nginx.yml去浏览器查看