第 7 章 Playbook文件复用

第 7 章 Playbook文件复用

1.include & import 区别

2.import_playbook

3.include_tasks

4.import_tasks

1.include & import 区别

include*(动态):在运行时导入

--list-tags,--list-tasks不会显示到输出

不能使用notify触发来自include*内处理程序名称(handlers)

import*(静态):在Playbook解析时预先导入

不能与循环一起使用

将变量用于目标文件或角色名称时,不能使用inventory(主机/主机组等)中的变量

2.import_playbook

为了可以灵活使用部署不同环境,可以将部署环境分割成几部分完成。

例如:LNMP分成nginx.yml、mysql.yml、php.yml。LNMT分成nginx.yml、mysql.yml、tomcat.yml。这样playbook文件就可以灵活进行复用。

简单示例如下:(实例中仅对语法进行演示理解)

#LNMP.yml
---
- import_playbook: nginx.yml
- import_playbook: php.yml
- import_playbook: mysql.yml

#LNMT.yml
---
- import_playbook: nginx.yml
- import_playbook: tomcat.yml
- import_playbook: mysql.yml

#nginx.yml
---
- hosts:web
  gather_facts: no
  
  tasks:
  - name: Install nginx
  debug: msg="install nginx ..."
  
#php.yml
---
- hosts: web
  gather_facts: no
  remote_user: root
  tasks:
  - name: Install php
    debug: msg="install php ..."
    
# cat tomcat.yml
---
- hosts: web
  gather_facts: no
  remote_user: root
  tasks:
  - name: Install Tomcat
    debug: msg="install tomcat ..."
演示效果省略

3.include_tasks与import_tasks

在任务较多时,可以将任务分解,分成一个个任务链进行复杂环境的部署,具体使用如下:

#main.yml
---
- hosts: web
  gather_facts: no
  tasks:
  - name: task1
    include_tasks: task1.yml
    vars:
      user: longtao
  - name: task2
    include_tasks: task2.yml
    vars:
      user: baiziyou
#task1.yml
---
- name: test task1
  debug: msg="task1 hello {{user}}"
#task2.yml
---
- name: test task2
  debug: msg="task2 hello {{user}}"

4.import_tasks用法跟include差不多

版权声明:
作者:WaterBear
链接:https://l-t.top/2024.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录