Skrytka odpowiedzi może określać klucz używany dla połączenia ssh za pomocą --key-file
w wierszu poleceń.Określanie klucza ssh w pliku ansibli ansamere
ansible-playbook -i hosts playbook.yml --key-file "~/.ssh/mykey.pem"
Czy to możliwe, aby określić położenie tego klucza w pliku PlayBook zamiast korzystania --key-file
w wierszu polecenia?
Ponieważ chcę zapisać lokalizację tego klucza w pliku var.yaml
, który zostanie odczytany za pomocą ansiblioteki z vars_files:
.
Poniżej lista części mojej konfiguracji:
vars.yml plików
key1: ~/.ssh/mykey1.pem
key2: ~/.ssh/mykey2.pem
playbook.yml plik
---
- hosts: myHost
remote_user: ubuntu
key_file: {{ key1 }} # This is not a valid syntax in ansible. Does there exist this kind of directive which allows me to specify the ssh key used for this connection?
vars_files:
- vars.yml
tasks:
- name: Echo a hello message
command: echo hello
Próbowałem dodanie ansible_ssh_private_key_file
pod vars
. Ale to nie działa na moim komputerze.
vars_files:
- vars.yml
vars:
ansible_ssh_private_key_file: "{{ key1 }}"
tasks:
- name: Echo a hello message
command: echo hello
Jeśli biegnę ansible-playbook
z powyższym playbook.yml
. Wystąpił następujący błąd:
TASK [Gathering Facts] ******************************************************************************************************************************
Using module file /usr/local/lib/python2.7/site-packages/ansible/modules/system/setup.py
<192.168.5.100> ESTABLISH SSH CONNECTION FOR USER: ubuntu
<192.168.5.100> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=ubuntu -o ConnectTimeout=10 -o ControlPath=/Users/myName/.ansible/cp/2d18691789 192.168.5.100 '/bin/sh -c '"'"'echo ~ && sleep 0'"'"''
<192.168.5.100> (255, '', 'Permission denied (publickey).\r\n')
fatal: [192.168.5.100]: UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Permission denied (publickey).\r\n",
"unreachable": true
}
to retry, use: --limit @/Users/myName/playbook.retry
Nie znaleziono nazwy pliku klucza w poleceniu ssh. To dziwne.
Pisanie 'ansible_ssh_private_key_file' pod' vars' nie działa na moim komputerze. To dziwne. – Brian
Nie chcę określać klucza w ekwipunku. Ponieważ nie mogę załadować 'vars.yml' z pliku inwentarza. – Brian
Dokładne: z 'vars' po prostu jest za późno. Powinieneś użyć plików 'host_vars' lub' group_vars', jeśli nie chcesz umieścić tego w swoim ekwipunku. – zigarn