Playbook文件复用: 1,include & import 区别 2,import_playbook 3,include_tasks 4,import_tasks include & import 区别: include*(动态):在运行时导入 --list-tags,--list-tasks不会显示到输出 不能使用notify触发来自include*内处理程序名称(handlers) import*(静态):在Playbook解析时预先导入 不能与循环一起使用 将变量用于目标文件或角色名称时,不能使用inventory(主机/主机组等)中的变量 import_playbook: [root@es1 playbook-demo]# [root@es1 playbook-demo]# cat webservers.yml # webservers.yml --- - hosts: webservers tasks: - debug: msg="test webserver" [root@es1 playbook-demo]# [root@es1 playbook-demo]# [root@es1 playbook-demo]# cat database.yml # database.yml --- - hosts: webservers tasks: - debug: msg="test database" [root@es1 playbook-demo]# [root@es1 playbook-demo]# cat main.yml # main.yml --- - import_playbook: webservers.yml - import_playbook: databases.yml [root@es1 playbook-demo]# [root@es1 playbook-demo]# [root@es1 playbook-demo]# ansible-playbook main.yml --syntax-check playbook: main.yml [root@es1 playbook-demo]# include_tasks & import_tasks: [root@es1 playbook-demo]# cat task2.yml #task2.yml --- - name: task2 debug: msg="hello {{user}}" [root@es1 playbook-demo]# [root@es1 playbook-demo]# cat main.yml # main.yml --- - hosts: webservers gather_facts: no tasks: - include_tasks: task1.yml vars: user: zhangsan - import_tasks: task2.yml vars: user: lisi [root@es1 playbook-demo]# [root@es1 playbook-demo]# ansible-playbook main.yml PLAY [webservers] ******************************************************************************************************************************************************************************** TASK [include_tasks] ***************************************************************************************************************************************************************************** included: /etc/ansible/playbook-demo/task1.yml for 192.168.0.12, 192.168.0.13 TASK [task1] ************************************************************************************************************************************************************************************* ok: [192.168.0.12] => { "msg": "hello zhangsan" } ok: [192.168.0.13] => { "msg": "hello zhangsan" } TASK [task2] ************************************************************************************************************************************************************************************* ok: [192.168.0.12] => { "msg": "hello lisi" } ok: [192.168.0.13] => { "msg": "hello lisi" } PLAY RECAP *************************************************************************************************************************************************************************************** 192.168.0.12 : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 192.168.0.13 : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 [root@es1 playbook-demo]# [root@es1 playbook-demo]#
原文:https://www.cnblogs.com/k8s-pod/p/13944292.html