4.0 Cuaderno de estrategias de Ansible 复 用

import_playbook

import_playbook Como su nombre lo indica, importe directamente todo el libro de jugadas. El uso es muy simple. Simplemente incluya el libro de jugadas existente para formar un libro de jugadas total. Al ejecutar el libro de jugadas total, se ejecutará un solo libro de jugadas en orden.

cat import_playbook.yml
- import_playbook: 1_base.yaml
- import_playbook: 2_backup_rsync.yaml
- import_playbook: 3_nfs_share.yaml
- import_playbook: 4_nfs_lsyncd.yaml
- import_playbook: 5_1_mysql_master.yaml
- import_playbook: 5_2_mysql_slave.yaml
- import_playbook: 6_webservers_nginx_php_webapps.yaml
- import_playbook: 7_webservers_tomcat_jpress.yaml

Reutilizar todo el libro de jugadas directamente puede ahorrar nuestra carga de trabajo hasta cierto punto. Por ejemplo, preparar uno base.yml, realizar algunas operaciones como configurar la red, configurar el nombre de host, etc., para incluirlo y combinarlo en el libro de jugadas deseado. Por supuesto, la granularidad aún es relativamente aproximada. Introducimos la reutilización a nivel de tarea

Ejemplo de referencia: https://gitee.com/as4k/ysansible/blob/master/reuse/import_playbook/import_playbook.yml

import_tasks

cat import_tasks.yml
---
- hosts: all
  become: yes

  vars_files:
    - vars.yml

  pre_tasks:
    - name: Update apt cache if needed.
      apt: update_cache=yes cache_valid_time=3600

  handlers:
    - import_tasks: handlers/handlers.yml

  tasks:

    - import_tasks: tasks/common.yml
    - import_tasks: tasks/apache.yml
    - import_tasks: tasks/php.yml
    - import_tasks: tasks/mysql.yml
    - import_tasks: tasks/composer.yml
    - import_tasks: tasks/drush.yml
    - import_tasks: tasks/drupal.yml

    - name: hello2
      debug:
        msg: "hello2"

Se puede ver que este tipo de granularidad es relativamente fina y fácil de controlar, por lo que cuando estamos escribiendo un libro de jugadas, si encontramos que ciertas tareas aparecen repetidamente en muchos libros de jugadas, podemos considerar extraerlas y ponerlas en un archivo separado para facilitar el mantenimiento y la recuperación.

Ejemplo de referencia: https://gitee.com/as4k/ysansible/tree/master/reuse/import_tasks

include_tasks

include_tasks es similar a import_tasks, pero puede lograr algunas funciones de "inclusión dinámica", de la siguiente manera

- include_tasks: setup-RedHat.yml
  when:
    - not php_install_from_source
    - ansible_os_family == 'RedHat'

- include_tasks: setup-Debian.yml
  when:
    - not php_install_from_source
    - ansible_os_family == 'Debian'

La diferencia entre import_tasks e include_tasks

En pocas palabras, import_tasks se incluye estáticamente. Este tipo de inclusión equivale a escribir directamente el contenido relevante en el libro de estrategias. Include_tasks se incluye y carga dinámicamente durante la ejecución. Por lo general, import_tasks se usa con más frecuencia. Con respecto a la diferencia detallada entre los dos, si está interesado, puede consultar el documento oficial a continuación

https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse.html

Por supuesto, la mejor manera de reutilizar u organizar una gran cantidad de libros de jugadas es el rol de Roles del que hablaremos pronto.

Supongo que te gusta

Origin blog.csdn.net/xys2015/article/details/113868347
Recomendado
Clasificación