Ansible条件ステートメントで現在の変数を参照していますか?


7

私は、ubuntuサーバーでユーザーを作成するために、ansible galaxyのwillshersystems.usersロールを使用しています。これで一貫して機能するようになったので、リストを指定してユーザーが特定のサーバーにアクセスできるかどうかに基づいて状態属性を設定しようとしています。

以下のようなことは可能ですか?私のグーグルフーは今のところ私を失敗させているようです、どんなアドバイスでも大歓迎です!

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

回答:


3

このようなものはどうですか:

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.