Рубрики
ansible

ansible import / include / file / folder / generate

include_playbook.yml его будем уменьшать и использовать include / import

---
- name: My TEST Playbook
  hosts: all
  become: yes

  vars:
   mytext: "Privet MEN"

  tasks:
  - name: Ping test
    ping:

  - name: Create folder1
    file:
     path:  /home/secret/folder1
     state: directory
     mode:  0755

  - name: Create folder2
    file:
     path:  /home/secret/folder2
     state: directory
     mode:  0755

  - name: Create file1
    copy:
     dest: /home/secret/file1.txt
     content:
        Text Line1, in file1
        Text Line2, in file1
        Text Line3, {{ mytext }}

  - name: Create file2
    copy:
     dest: /home/secret/file2.txt
     content:
        Text Line1, in file2
        Text Line2, in file2
        Text Line3, {{ mytext }}

...

create_folder.yml

---
- name: Create folder1
  file:
   path:  /home/secret/folder1
   state: directory
   mode:  0755

- name: Create folder2
  file:
    path:  /home/secret/folder2
    state: directory
    mode:  0755

...

create_files.yml

---
- name: Create file1
  copy:
   dest: /home/secret/file1.txt
   content: |
        Text Line1, in file1
        Text Line2, in file1
        Text Line3, {{ mytext }}

- name: Create file2
  copy:
   dest: /home/secret/file2.txt
   content: |
        Text Line1, in file2
        Text Line2, in file2
        Text Line3, {{ mytext }}

...


include_playbook.yml

---
- name: My TEST Playbook
  hosts: all
  become: yes

  vars:
   mytext: "Privet MEN"

  tasks:
  - name: Ping test
    ping:

  - name: Create Folders
    include: create_folder.yml

  - name: Create Files
    import: create_files.yml

...

!!! Отличие import от include заключается в следующем
!!! Include читает из файлов значения, ansible подставляет значения при выполнении (дошел до строчки с include тогда и подставил)
!!! Import  читает и подставляет значения, ansible подставляет сразу все значения
!!! рекомендуют использовать include
!!! Также можно сократить запись


---
- name: My TEST Playbook
  hosts: all
  become: yes

  vars:
   mytext: "Privet MEN"

  tasks:
  - name: Ping test
    ping:

  - include: create_folder.yml
  - include: create_files.yml  mytext="Hello from Mosckow"

...