1つの役割に対してのみansible.cfgファイルをデフォルト設定として定義できますか?

1つの役割に対してのみansible.cfgファイルをデフォルト設定として定義できますか?

私はmakeディレクティブなしで「ssh」ロールを実行し、makeディレクティブを使用して実行される他のロールを実行したいと思います。私はansible_ssh.cfggoesステートメントを含まない別のプロファイルを作成し、それをsshロールに割り当てることにしました。

私はこれを試しました(tasks/ssh.ymlから):

- name: deploiement clé ssh
  environment:
    ANSIBLE_CONFIG: ansible_ssh.cfg
  authorized_key:
    user: "{{ansible_user_id}}"
    state: present
    key: "{{ lookup('file', '/home/{{ansible_user_id}}/.ssh/id_rsa.pub') }}"

そして(役割レベルで):

roles:
      - ssh
   environment:
     ANSIBLE_CONFIG: /var/lib/rundeck/ansible/roles:ssh/files/ansible_ssh.cfg
      - proxy
      - vmware_tools
      - ntp
      - nmap
      - tcpdump
      - unattended-upgrades
      - traceroute
      - apache
      - mysql

しかし成功はありません。

アンサーブルバージョン:2.7

答え1

become: falseプレイごとに多くの構成設定を定義して上書きできます(例:)

たとえば、

---
- hosts: 192.168.1.2
  tasks:
  - name:  some task
    shell: foo

- hosts: 192.168.1.2
  become: false
  roles:  my_ssh_role

答え2

私は働くものを作りました。

---
 - hosts: slaves
   strategy: free
#   connection: network_cli
   become: no
   roles:
      - ssh
 - name: import playbbok
   import_playbook: suite_config_linux.yml

become: noSSHロールを呼び出す別のプレイブックとimport_playbookincludeAnsible 2.8バージョンでは消えます)を使用して2番目のプレイブックを作成しました。

---
 - hosts: slaves
   strategy: free
#   connection: network_cli
   roles:
#      - ssh
      - proxy
      - vmware_tools
      - ntp
      - nmap
      - tcpdump
      - unattended-upgrades
      - traceroute
      - apache
      - mysql

関連情報