ansible中的include导入
概述
Ansible 中 include 系列用于拆分 Playbook、复用任务,分两大阶段:旧版静态 include、新版 import_ / include_(Ansible 2.4+ 官方推荐)
咱们这里只讲解新版的include_
include分为三类:
- include_tasks:导入tasks任务
- include_playbook:导入playbook文件
- include_roles:导入角色
include_tasks导入tasks任务
案例:
- 工程结构
root@master:/data00/ansible/include_tasks# tree
.
├── install_nginx.yaml
├── main.yaml
└── start_nginx.yaml
- install_nginx.yaml文件
root@master:/data00/ansible/include_tasks# cat install_nginx.yaml
- name: install nginx
debug:
msg: "install nginx"
tags: install
- start_nginx.yaml文件
root@master:/data00/ansible/include_tasks# cat start_nginx.yaml
- name: start nginx
debug:
msg: "start nginx"
tags: start
- main.yaml文件
root@master:/data00/ansible/include_tasks# cat main.yaml
- hosts: es
vars:
env: prod
tasks:
- name: import install nginx
# 导入tasks
import_tasks: ./install_nginx.yaml
when: env == "prod"
- name: import start nginx
# 导入tasks
import_tasks: ./start_nginx.yaml
when: env == "prod"
- 执行:
root@master:/data00/ansible/include_tasks# ansible-playbook main.yaml
PLAY [es] ********************************************************************************************************************************************************************************************************
TASK [Gathering Facts] *******************************************************************************************************************************************************************************************
ok: [10.37.120.9]
TASK [install nginx] *********************************************************************************************************************************************************************************************
ok: [10.37.120.9] => {
"msg": "install nginx"
}
TASK [start nginx] ***********************************************************************************************************************************************************************************************
ok: [10.37.120.9] => {
"msg": "start nginx"
}
PLAY RECAP *******************************************************************************************************************************************************************************************************
10.37.120.9 : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
import_playbook导入完整剧本文件
include_playbook在新版本的ansible中已经不支持了,这里使用import_playbook
- 目录结构
root@master:/data00/ansible/include_playbook# tree
.
├── install_nginx.yaml
├── main.yaml
└── start_nginx.yaml
0 directories, 3 files
- install_nginx.yaml
root@master:/data00/ansible/include_playbook# cat install_nginx.yaml
- name: install nginx
hosts: es
tasks:
- name: install nginx
debug:
msg: "install nginx"
tags: install
- start_nginx.yaml
root@master:/data00/ansible/include_playbook# cat start_nginx.yaml
- name: restart nginx
hosts: es
tasks:
- name: restart nginx
debug:
msg: "restart nginx"
tags: restart
- main.yaml
root@master:/data00/ansible/include_playbook# cat main.yaml
- import_playbook: ./install_nginx.yaml
- import_playbook: ./start_nginx.yaml
- 测试执行:
root@master:/data00/ansible/include_playbook# ansible-playbook main.yaml
PLAY [install nginx] *********************************************************************************************************************************************************************************************
TASK [Gathering Facts] *******************************************************************************************************************************************************************************************
ok: [10.37.120.9]
TASK [install nginx] *********************************************************************************************************************************************************************************************
ok: [10.37.120.9] => {
"msg": "install nginx"
}
PLAY [restart nginx] *********************************************************************************************************************************************************************************************
TASK [Gathering Facts] *******************************************************************************************************************************************************************************************
ok: [10.37.120.9]
TASK [restart nginx] *********************************************************************************************************************************************************************************************
ok: [10.37.120.9] => {
"msg": "restart nginx"
}
PLAY RECAP *******************************************************************************************************************************************************************************************************
10.37.120.9 : ok=4 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
include_roles导入角色
生产环境基本不用,忽略即可
本文来自博客园,作者:huangSir-devops,转载请注明原文链接:https://www.cnblogs.com/huangSir-devops/p/21455857,微信Vac6666666,欢迎交流

浙公网安备 33010602011771号