나는 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 버전에서는 사라짐) 을 사용하여 두 번째 플레이북을 만들었습니다.
---
- hosts: slaves
strategy: free
# connection: network_cli
roles:
# - ssh
- proxy
- vmware_tools
- ntp
- nmap
- tcpdump
- unattended-upgrades
- traceroute
- apache
- mysql