例:需求-通过YAML编写一个简单的剧本,完成WEB的部署,配置启动的全过程
在ansible服务器上测试:(仅测试用)
1.准备工作:
清理一下环境:ansible all -m yum -a 'name=httpd state=removed' -o
yum install -y httpd 现在ansible服务器上安装上httpd为了获取配置文件要是自己编写配置文件也可以
mkdir apache 创建个文件夹
cd apache 进入文件夹
cp -rf /etc/httpd/conf/httpd.conf . 把apache的配置文件考入当前目录(注意当前位置)
grep ‘^Listen’ httpd.conf 查出端口修改一下,为后面测试用
2.编写剧本:(编写时一定注意对其和空格数量对其方式‘-’后面一定要跟空格,”:“后面一定加空格后在输入内容)
创建一个文件:vim apache.yaml
- hosts: host1
tasks:
- name: install apache packages
yum: name=httpd state=present
- name: copy apache conf
copy: src=./httpd.conf dest=/etc/httpd/conf/httpd.conf
- name: ensure apache is running
service: name=httpd state=started enabled=yes
保存退出
测试:
执行剧本:ansbie-playbook apache.yaml
小编建议执行前检测一下:ansible-playbook apache.yaml --syntax-check 检测语法
ansible-playbook apache.yaml --syntax-check 检测任务
有报错的话根据提示进行修改
如果执行完成后有配置文件发生变化在执行剧本时就会报错
所以:
引用通知的语法——handlers
例如:
- hosts: host1
tasks:
- name: install apache packages
yum: name=httpd state=present
- name: copy apache conf
copy: src=./httpd.conf dest=/etc/httpd/conf/httpd.conf
notify: restart apache server
- name: ensure apache is running
service: name=httpd state=started enabled=yes
handlers:(请跟上面tasks对齐)
- name:restart apache server
service: name=httpd state=restarted
再次执行:ansible-playbook apache.yaml