Referenciando a variável atual na declaração condicional Ansible?


7

Eu estou usando o willshersystems.users papel da galáxia ansible para a criação de usuários no Ubuntu servidores. Agora que estou trabalhando de maneira consistente, estou tentando definir o atributo state com base no fato de o usuário ter acesso a um servidor específico, dada uma lista.

É algo como o abaixo possível? Meu google fu parece estar falhando comigo no momento, qualquer conselho seria muito apreciado!

vars:
  user_servers:
    user1:
      - testing1

  users:

    - name: user1
      groups: '{{ user_groups }}'
      state: "{{ ( inventory_hostname_short in user_servers[self.name] ) | ternary('present','absent') }}"

roles:
  - role: willshersystems.users

Respostas:


3

Que tal algo como isso:

hosts: all

vars:
  user_servers:
    user1:
      - testing1

  users:
    -name: user1
    -groups: '{{ user_groups }}'
    -state: present

roles:
  - name: Add filtered users
    tasks:
      - name: Filter users 
        debug: User {{ item }}
        with_items: "{{ users | default([]) }}"
        when: {{ inventory_hostname_short }} in user_servers[item]
        register: filtered_users  

      - name: Add filtered users
        include_role: wilshersystems.users
        with_items:
        - {{ filtered_users }}
        loop_control:
        - loop_var: users
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.