1、Templates模块实例
1.1、用远程复制的方法拷贝模板
[root@ansible ~]# scp root@192.168.140.30:/etc/httpd/conf/httpd.conf ./
#用root身份去远程拷贝模板文件到当前目录下
[root@ansible ~]# mkdir demo #创建demo的文件夹
[root@ansible ~]# mv httpd.conf demo #把模板剪切到demo文件夹里,方便操作
[root@ansible ~]# cd demo
[root@ansible demo]# ls
[root@ansible demo]# vim httpd.conf #修改配置文件
[root@ansible demo]# mv httpd.conf httpd.conf.j2 #把配置文件改变成模板文件
注:j2是jinja2,基于python的模板引擎,提供模板功能
[root@ansible demo]# vim /etc/ansible/hosts #进入配置文件,定义变量
[root@ansible demo]# vim apache.yml #创建剧本
- hosts: mysql
remote_user: root
vars:
- server: httpd
tasks:
- name: install apache
yum: name={
{
server}} state=latest
- name: config file
template: src=/root/demo/httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf
notify:
- restart httpd
- name: start httpd
service: name={
{
server}}
handlers:
- name: restart httpd
service: name={
{
server}} state=restart enabled=true
[root@ansible demo]# ansible-playbook apache.yml --syntax-check #检查语法
[root@ansible demo]# ansible-playbook apache.yml #执行文件
[root@mysql ~]# cd /etc/httpd/conf
[root@mysql conf]# ll
[root@mysql conf]# vim httpd.conf
2、tags模块实例
注:在一个playbook中,我们一般会定义很多个task,如果我们只想执行其中的某一个task或多个task时就可以使用tags标签功能
[root@ansible ~]# vim hosts.yml
- hosts: webserver
remote_user: root
tasks:
- name: copy hosts
copy: src=/etc/hosts dest=/opt/hosts
tags:
- ms
- name: touch hosts01
file: path=/opt/hosts01 state=touch
[root@ansible ~]# ansible-playbook hosts.yml --tags="ms"
[root@webserver opt]# ll
2.1、相同的标签实验
[root@ansible ~]# vim hosts.yml
[root@ansible ~]# ansible-playbook hosts.yml --tags="ms"
[root@webserver opt]# ll
总结:如果需要执行几个任务,只需要给任务打上相同名字的标签,没被标签的就会不被执行
2.2、标签名为always实验
[root@ansible ~]# vim hosts.yml
[root@ansible ~]# ansible-playbook hosts.yml --tags="ms"
[root@webserver opt]# ll
3、总结
只有对ansible和playbook中的模块熟悉,掌握,才能更好的运用ansible来进行工作