1、Includes的使用场景
A项目要用重启PHP
B项目要用重启PHP
C项目要用重启PHP
可以将重启PHP这个task独立成一个playbook文件,供他人引用即可。
首先编写重启PHP的文件:restartphpprocess.yml
此时这段代码就成为公共的了,谁都能用了。
在其他playbook文件中引用上面的restartphpprocess.yml文件:
2、Includes的使用方法
红框中的冗余了,需要摘出来。
这就是include的使用场景。上面的例子中,我们是在tasks关键字下面使用了include。同样,还可以在handlers关键字下面使用include。
只要记住,引用的必须是任务列表。
同样,还可以引用另一个整体的yml文件,而不仅仅是任务列表。
当extra-tasks.yml存在时,再去引入这个文件。通过when来判断。这也称为动态include。
include是ansible中比较重要的一个功能。
AD-HOC适用于临时命令的执行,Playbook合适中小项目,而大项目一定使用Roles。
使用roles安装lamp架构:
1、首先定义三个角色,分别为:httpd,mysql,php。
2、然后在每个角色目录下创建必要的目录结构。
mkdir /etc/ansible/roles/httpd/{files,templates,tasks,handlers,vars,defaults,meta} -p
mkdir /etc/ansible/roles/mysql/{files,templates,tasks,handlers,vars,defaults,meta} -p
mkdir /etc/ansible/roles/php/{files,templates,tasks,handlers,vars,defaults,meta} -p
touch /etc/ansible/roles/httpd/{defaults,vars,tasks,meta,handlers}/main.yml
touch /etc/ansible/roles/mysql/{defaults,vars,tasks,meta,handlers}/main.yml
touch /etc/ansible/roles/php/{defaults,vars,tasks,meta,handlers}/main.yml
3、编写httpd模块。
4、编写mysql模块。
5、编写php模块。
6、生成httpd的配置文件模板
模板文件为httpd.conf.j2,在模板中定义了三个变量,这些变量的值要从inventory文件中获取。
http://192.168.40.253/index.php即可得到主页面。