tasks文件的静态导入和动态包含
tasks文件的静态导入方式import_tasks
静态导入的方式,when判断是针对tasks文件的所有tasks
静态导入的task文件,会被认为是本playbook的task
每个tasks都会判断一次
新建tasks1.yml
文件
- name: 安装httpdpkg
yum:
name: httpd
state: latest
- name: 开启httpd服务
service:
name: httpd
state: started
enabled: yes
新建playbook1.yml
文件
---
- name: 安装web服务器
hosts: servers
tasks:
# 导入tasks文件
- import_tasks: tasks1.yml
查看静态导入的task列表
静态导入的task文件,会被认为是本playbook的task
# 查看静态导入的task列表,tasks_file中的文件被识别为本地的tasks
ansible-playbook --list-tasks playbook.yml
tasks文件的动态包含include_tasks
动态包含的方式,when判断是针对tasks文件的上级tasks做一次判断
如果when为真,就执行tasks文件,如果when为假,就不执行tasks文件
新建tasks1.yml
文件
- name: 安装httpdpkg
yum:
name: httpd
state: latest
- name: 开启httpd服务
service:
name: httpd
state: started
enabled: yes
新建playbook1.yml
文件
---
- name: 安装web服务器
hosts: servers
tasks:
# 导入tasks文件
- include_tasks: tasks1.yml
查看动态导入的task
查看动态导入的task,显示的是一个task
[student@workstation projects-file]$ ansible-playbook --list-tasks playbook.yml
playbook: playbook.yml
play #1 (servera.lab.example.com): config web server TAGS: []
tasks:
user include TAGS: []
Install the firewall TAGS: []
Start the firewall TAGS: []
Open the port for {{ rule }} TAGS: []
Create placeholder file TAGS: []
play #2 (localhost): Test web service TAGS: []
tasks:
connect to internet web server TAGS: []