环境都为Centos 7.4主机
192.168.241.100管理节点 192.168.241.101被控端 192.168.241.102被控端
官方使用文档说明:https://docs.ansible.com/ansible/latest/user_guide/playbooks.html
首先创建一个工作目录:
[root@liudongyi ~]# mkdir playbook
[root@liudongyi ~]# cd playbook/
编写一个简单的下载nginx服务并且启动设置成开机启动的nginx.yaml文件(代码中出现中文就有会出错)
- hosts: webservers
remote_user: root
gather_facts: false
tasks:
- name: nginx latest
yum: pkg=nginx state=latest
- name: start nginx
systemd: name=nginx state=started enabled=yes
运行我们的yaml文件:
[root@liudongyi playbook]# ansible-playbook nginx.yaml
yaml文件也可以写成如下:
---
- hosts: webservers
vars:
http_port: 80
server_name: www.ctnrs.com
remote_user: root
gather_facts: false
tasks:
- name: 安装nginx最新版
yum: pkg=nginx state=latest
- name: 写入nginx配置文件
template: src=/srv/httpd.j2 dest=/etc/nginx/nginx.conf
notify:
- restart nginx
- name: 确保nginx正在运行
service: name=httpd state=started
handlers:
- name: restart nginx
service: name=nginx state=reloaded
定义变量:
给所以组进行定义变量的步骤:
1.首先我们需要在创建一个目录(默认引用的目录)用来存放定义变量文件
[root@liudongyi ~]# mkdir /etc/ansible/group_vars
我们新建一个yml的变量文件(里面存放的都是自己给所有组定义的变量)
[root@liudongyi group_vars]# vim all.yml
love : 520
ldy : 1314
我们测试一下是否能输出变量:
查看所有组的变量信息
[root@liudongyi group_vars]# ansible all -m debug -a "var=love"
[root@liudongyi group_vars]# ansible all -m debug -a "var=ldy"