Почему ответная опция "--private-key" работает на одном хосте, но не на другом? - PullRequest
1 голос
/ 17 июня 2019

Я установил ansible 2.8.0 на VM-1 без изменения каких-либо других настроек по умолчанию в ansible.cfg, кроме "host_key_checking = false" .

Затем я запустил ansible all -i "<IP of VM-3>," --private-key <key of VM-3> -u root -m ping с OK на ВМ-3, но запустил ansible all -i "<IP of VM-2>," --private-key <key of VM-2> -u root -m ping с ОШИБКОЙ на ВМ-2.

Я сгенерировал пару ключей ssh ​​на VM-2 (пользователь является пользователем root) и скопировал содержимое его закрытого ключа (id_rsa) в VM-1. Я сохраняю его в файле с именем «ключ» и устанавливаю режим этого файла «700». Наконец, я выполнил команду ниже:

ansible all -i "<ip of VM-2>," --private-key key -u root -m ping

Это работает неправильно. Информация об ошибке:

/opt # ansible --version
ansible 2.8.0
  config file = /opt/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.6/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.6.8 (default, Apr  8 2019, 18:17:52) [GCC 8.3.0]
/opt # ls
ansible.cfg  key
/opt # ansible all -i "192.168.100.100," --private-key key -u root -m ping
192.168.100.100 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: root@192.168.100.100: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).",
    "unreachable": true
}

Затем я переключился на использование опции "-k", и она работает.

/opt # ansible all -i "192.168.100.100," -k -u root -m ping
SSH password: 
192.168.100.100 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

Затем я снова попробовал на ВМ-3 с теми же шагами, что и ВМ-2. Команда с использованием ключа --private-key работает. Среда ВМ-2 и ВМ-3 очень похожи. Я не нашел никакой разницы между конфигурацией sshd в VM-2 и VM-3.

Так что я очень запутался с этим выше.

Кроме того, команда «--private-key» будет в порядке после выполнения команды «-k», потому что в фоновом режиме существует отдельный процесс, например:

/opt # ansible all -i "192.168.100.100," -k -u root -m ping
SSH password: 
192.168.100.100 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
/opt # ps -ef |grep ansible
  126 root      0:00 ssh: /root/.ansible/cp/e42d5dc861 [mux]
/opt # ansible all -i "192.168.100.100," --private-key key -u root -m ping
192.168.100.100 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

Я хочу знать, как правильно использовать «--private-key» в командной строке ansible.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...