playbook-loop.yml примеры циклов loop, with_items
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
--- - name: Loops Hello hosts: all become: yes tasks: - name: Say Hello to ALL debug: msg="Hello {{ item }}" loop: - "Vasya" - "Masha" - "Olga" - "Petr" - name: loop until example shell: echo -n Z >> myfile.txt && cat myfile.txt register: output delay: 2 retries: 10 until: output.stdout.find("ZZZZ") == false - name: Print Final Output debug: var: output.stdout # - name: Install many packeg # apt: name={{ item }} state=present # with_items: # - apache2 # - htop # - tree ... |
playbook.yml install-and-copy-folder
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
--- - name: Install Apache and Upload my Web Page hosts: all become: yes vars: source_folder: ./website destin_folder: /var/www/html tasks: - name: Cheack and Print Linux Version debug: var=ansible_os_family - block: # === BLOCK REDHAT ==== - name: Install Apache Web Server for RedHat yum: name=httpd state=present - name: Start Apache and Enable it on every boot service: name=httpd state=started enabled=yes when: ansible_os_family == "RedHat" - block: # === BLOCK DEBIAN ==== - name: Install Apache Web Server for Debian apt: name=apache2 state=present - name: Start Apache and Enable it on every boot service: name=apache2 state=started enabled=yes when: ansible_os_family == "Debian" - name: Copy folder to web Servers copy: src={{ source_folder }}/{{ item }} dest={{ destin_folder }} mode=0555 loop: - "file0.txt" - "file1.txt" - "file2.txt" - "file3.txt" - "file4.txt" - "file5.txt" notify: - Restart Apache RedHat - Restart Apache Debian handlers: - name: Restart Apache RedHat service: name=httpd state=restarted when: ansible_os_family == "RedHat" - name: Restart Apache Debian service: name=apache2 state=restarted when: ansible_os_family == "Debian" ... |
playbook.yml install-and-copy-folder по маске
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
--- - name: Install Apache and Upload my Web Page hosts: all become: yes vars: source_folder: ./website destin_folder: /var/www/html tasks: - name: Cheack and Print Linux Version debug: var=ansible_os_family - block: # === BLOCK REDHAT ==== - name: Install Apache Web Server for RedHat yum: name=httpd state=present - name: Start Apache and Enable it on every boot service: name=httpd state=started enabled=yes when: ansible_os_family == "RedHat" - block: # === BLOCK DEBIAN ==== - name: Install Apache Web Server for Debian apt: name=apache2 state=present - name: Start Apache and Enable it on every boot service: name=apache2 state=started enabled=yes when: ansible_os_family == "Debian" - name: Copy folder to web Servers copy: src={{ item }} dest={{ destin_folder }} mode=0555 with_fileglob: "{{ source_folder }}/*.*" notify: - Restart Apache RedHat - Restart Apache Debian handlers: - name: Restart Apache RedHat service: name=httpd state=restarted when: ansible_os_family == "RedHat" - name: Restart Apache Debian service: name=apache2 state=restarted when: ansible_os_family == "Debian" ... |