하나의 역할에 대해서만 ansible.cfg 파일을 기본 구성으로 정의할 수 있습니까?

하나의 역할에 대해서만 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_playbook( includeAnsible 2.8 버전에서는 사라짐) 을 사용하여 두 번째 플레이북을 만들었습니다.

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

관련 정보