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"
...