INVOKING YUM ONLY ONE TIME
Opa pessoal tudo certo!?
Criei a seguinte playbook para instalar diversos pacotes em somente uma task com o ansible:
sampaio@vagrant:$ cat playbook.yml
---
- hosts: 192.168.66.66
become: true
tasks:
- name: Install gluster repo
yum:
name: "{{ item }}"
state: present
with_items:
- vim
- python3
- unzip
- wget
Ao rolar a playbook aparece o seguinte erro:
sampaio@vagrant:$ ansible-playbook playbook.yml
PLAY [192.168.66.66] ************************************************************************
TASK [Gathering Facts] **********************************************************************
ok: [192.168.66.66]
TASK [Install gluster repo] *****************************************************************
[DEPRECATION WARNING] : Invoking "yum" only once while using a loop via squash_actions is
deprecated. Instead of using a loop to supply multiple items and specifying `name: "{{ item
}}"`, please use `name: ['vim', 'python3', 'unzip', 'wget']` and remove the loop. This
feature will be removed in version 2.11. Deprecation warnings can be disabled by setting
deprecation_warnings=False in ansible.cfg.
changed: [192.168.66.66] => (item=['vim', 'python3', 'unzip', 'wget'])
PLAY RECAP **********************************************************************************
192.168.66.66 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
- Aviso que está forma, hoje está funcionando, mas é obsoleta, sendo assim devemos refatorar nosso cógido para readequar-lo as novas diretrizes.
No meu código eu decidi cria uma variavel chamada “packages” e nela criar uma lista com todos pacotes que desejo instalar. Olha como ficou o código:
sampaio@vagrant:$ cat playbook.yml
---
- hosts: 192.168.66.66
become: true
vars:
packages:
- vim
- python3
- unzip
- wget
tasks:
- name: Install gluster repo
yum:
name: "{{ packages }}"
state: present
Após essa alteração o código roda sem alertas.