2. Including and Importing

2019-01-11  本文已影响0人  Besty_00

编写大型的playbook时,都挤在同一个playbook文件会显得很臃肿,所以应当拆分成多个文件,每个文件实现特定的功能,最后统一导入到主 playbook(main playbooks)文件中,相当于编程语言的import/include, 而 ansible 则提供了 import/include 两种导入方式。

include vs. import

  • All import statements are pre-processed at the time playbooks are parsed.
  • All include statements are processed as they are encountered during the execution of the playbook.

不同的地方是 import 导入后做了预处理,可能更快些。

Importing and Including Playbooks

# cat playbooks/import_and_include.yml
- hosts: servers
  tasks:
    - import_tasks: apache.yml
      remote_user: root
      vars:
        package_name: httpd
    - include_tasks: apache.yml
      vars:
        package_name: httpd

# cat playbooks/apache.yml
- yum: name={{ package_name }} state=latest
  sudo: yes
- service: name={{ package_name }} state=started
  sudo: yes

被导入的文件不需要指定机器,只需执行任务就行了。

上一篇下一篇

猜你喜欢

热点阅读