Skip to main content

Ansible. with_items

Ansible Ansible

Ansible with_items. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡβ€‹

Π’ Ansible ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ with_items для выполнСния ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π·Π°Π΄Π°Ρ‡ Π² Ρ†ΠΈΠΊΠ»Π΅. Рассмотрим нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² использования этой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹.

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ список Ρ„Ρ€ΡƒΠΊΡ‚ΠΎΠ² ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ fruits с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ echo. Π§Ρ‚ΠΎΠ±Ρ‹ вывСсти всС Ρ„Ρ€ΡƒΠΊΡ‚Ρ‹ ΠΈΠ· списка, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ with_items Π² этом Π·Π°Π΄Π°Π½ΠΈΠΈ:

ΠŸΠ»Π΅ΠΉΠ±ΡƒΠΊ для Π²Ρ‹Π²ΠΎΠ΄Π° списка фруктов​

- name: Print list of fruits
hosts: localhost
vars:
fruits:
- Apple
- Banana
- Grapes
- Orange
tasks:
- command: 'echo "{{ item }}"'
with_items: '{{ fruits }}'

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ with_items для установки Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модуля yum. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ packages содСрТит список ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° хостС. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° with_items позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ элСмСнтом списка:

ΠŸΠ»Π΅ΠΉΠ±ΡƒΠΊ для установки Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модуля yum​

- name: Install required packages
hosts: localhost
vars:
packages:
- httpd
- binutils
- glibc
- ksh
- libaio
- libXext
- gcc
- make
- sysstat
- unixODBC
- mongodb
- nodejs
- grunt
tasks:
- yum:
name: '{{ item }}'
state: present
with_items: '{{ packages }}'

Π’ ΠΎΠ±ΠΎΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° with_items позволяСт Π½Π°ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта списка. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ сущСствСнно ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ процСссов Π² IT-инфраструктурС ΠΈ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡.