티스토리 뷰
Ansible
[Ansible] Add host key to known_hosts file.(if not exists)
Network && Devops 2020. 7. 16. 18:44반응형
Ansbie에서 각 호스트 SSH 접속할 경우 known_hots 파일에 호스트 키가 저장이 되어 있어야 하며, 저장이 되어 있지 않을 경우 playbook 실행시 호스트key를 찾을 수 없다는 메시지와 함께 실행이 되지 않게 된다.
ansible에서는 known_hosts 모듈을 사용하여 known_hosts 파일에 호스트 키를 저장하거나 삭제 할 수 있다.
아래는 호스트 키를 known_hosts 파일에 저장하는 Playbook 파일이며, 호스트 키를 검색 한 후 호스트 키가 없을 경우에 키를 저장할 수 있다.
---
#- hosts1 IP : 10.10.10.1
- hosts: host1
gather_facts: no
connection: local
vars:
ssh_known_hosts_command: "ssh-keyscan -T 10"
ssh_known_hosts_file: "{{ lookup('env','HOME') + '/.ssh/known_hosts' }}"
ssh_known_hosts: "{{ ansible_host }}"
tasks:
- name: scan for host key about ssh_known_hosts
shell: "ssh-keyscan {{ item }},`dig +short {{ item }}`"
with_items: "{{ ssh_known_hosts }}"
register: ssh_known_host_results
ignore_errors: yes
- name: Add the host key in the '{{ ssh_known_hosts_file }}' if does not exist.
known_hosts:
name: "{{ item.item }}"
key: "{{ item.stdout }}"
path: "{{ ssh_known_hosts_file }}"
with_items: "{{ ssh_known_host_results.results }}"
when: ssh_known_host_results == False
※ 실행 방법 및 결과
[root@ansible]#ansible-playbook /etc/ansible/playbooks/hostkeycheck.yml
PLAY [host1] ***********************************************************************************************************************************************************************************************************************
TASK [scan for host key about ssh_known_hosts] *********************************************************************************************************************************************************************************************
changed: [host1] => (item=10.10.10.1)
TASK [Add the host key in the '/root/.ssh/known_hosts' if does not exist.] *****************************************************************************************************************************************************************
skipping: [host1] => (item={u'stderr_lines': [u'# 10.10.10.1:22 SSH-2.0-OpenSSH_6.2 PKIX FIPS', u'# 10.10.10.1:22 SSH-2.0-OpenSSH_6.2 PKIX FIPS', u'# 10.10.10.1:22 SSH-2.0-OpenSSH_6.2 PKIX FIPS'], u'ansible_loop_var': u'item', u'end': u'2020-07-16 20:52:55.362806', u'stdout': u'10.10.10.1, ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEApH0suUEB6+9eOkGYOSZfwAHFY+YE1r6Ug5tH068DjjCcZnR1/G3106vRxf7+YXTOvYCD5FgklU8BHhwN0Zgcf6urxIe5ZrN5l7CToCo9rzvkkjih/9d8PHsVmEApmY2ug806tgBinkXcvxcC/c='], u'ansible_facts': {u'discovered_interpreter_python': u'/usr/bin/python'}})
PLAY RECAP *********************************************************************************************************************************************************************************************************************************
host1 : ok=1 changed=1 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
▶ 키파일이 존재하여 실행 결과 skipped 된 것을 확인할 수 있다.
반응형
'Ansible' 카테고리의 다른 글
[Ansible] modify banner phrase and Change delimiting character '@' (0) | 2020.07.06 |
---|---|
[Ansible] Ansible Backup Cisco IOS Switch Config (0) | 2019.12.27 |
Centos Ansible 설치 방법 (0) | 2019.12.19 |
Ansible(앤서블) 이란? (0) | 2019.11.21 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ELASTIC
- 개발
- EVE
- Network
- Linux
- ccnp
- Ntopng
- maximum shards open error
- Elk
- ldap
- CISCO
- Security
- 파이선
- Kibana
- EVE-ng
- Fortigate
- nms
- ubuntu
- CentOS
- pyqt
- 코딩
- Python
- GUI
- routing
- NTOP
- Logstash
- switch
- ccna
- Elasticsearch
- ccie
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함