私はmakeディレクティブなしで「ssh」ロールを実行し、makeディレクティブを使用して実行される他のロールを実行したいと思います。私はansible_ssh.cfg
goesステートメントを含まない別のプロファイルを作成し、それを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: no
SSHロールを呼び出す別のプレイブックとimport_playbook
(include
Ansible 2.8バージョンでは消えます)を使用して2番目のプレイブックを作成しました。
---
- hosts: slaves
strategy: free
# connection: network_cli
roles:
# - ssh
- proxy
- vmware_tools
- ntp
- nmap
- tcpdump
- unattended-upgrades
- traceroute
- apache
- mysql