Ansible의 모든 호스트에 대해 기본 ssh 사용자를 설정하는 방법은 무엇입니까?


11

사용 가능한 버전 2.1

인벤토리 파일이 있습니다 hosts

[nodes]
host1
host2
...

간단한 플레이 북 site.yml

---
- hosts: all
  tasks:
    - include: tasks/main.yml

방금 놀이를 시작하면

ansible-playbook -i hosts site.yml -vvvv

모든 호스트에 대해이 오류가 발생합니다.

ESTABLISH SSH CONNECTION FOR USER: None
fatal: [host1]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh.", "unreachable": true}
...

그러나 Ansible Inventory doc을 읽고 파일에 추가 ansible_user했습니다.hosts

[nodes]
host1    ansible_user=root
host2    ansible_user=root
...

이것은 SSH CONNECTION UNREACHABLE오류를 해결합니다 . 그러나 ansible_user=root모든 호스트 옆에 추가해야 합니까? 아니면 더 간단한 방법이 있습니까?

답변:


11

예제 / 기본 ansible.cfg파일을 확인하면 다음에서 찾을 수 있습니다 [defaults].

# default user to use for playbooks if user is not specified
# (/usr/bin/ansible will use current user as default)
#remote_user = root

주석 remote_user을 해제하고 로그인하려는 사용자를 설정하십시오.

Ansible은 어디에서 얻 ansible.cfg습니까? 같은 파일이 설명합니다 :

# nearly all parameters can be overridden in ansible-playbook 
# or with command line flags. ansible will read ANSIBLE_CONFIG,
# ansible.cfg in the current working directory, .ansible.cfg in
# the home directory or /etc/ansible/ansible.cfg, whichever it
# finds first

감사합니다 @Deltik, 당신은 대답 할 수있을 것입니다 이것 뿐만 아니라를?
Howard Lee

@HowardLee : 다른 질문 은 주로 의견 기반이며 수퍼 유저에게는 적합하지 않습니다.
Deltik

4

다른 방법은 --user원격 ssh 사용자를 정의하는 데 사용 하는 것입니다. ansible-playbook --help자세히 읽으려면 입력하십시오 . 이것은 내 일반적인 명령입니다.

ansible-playbook -i hosts site.yml --user <user> --ask-pass -vvvv

--ask-pass 암호를 입력하라는 메시지가 표시됩니다 --user


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.