Intereting Posts
ссылка на svg через comments_popup_link Отображение количества результатов поиска для каждого типа сообщения Как получить идентификатор пользователя в wp_logout action hook? Создание ответных фоновых изображений в PHP Как добавить и отправить поля ввода с помощью короткого кода? Wp_list_pages не показывает детей с настраиваемым шаблоном страницы Проверка массива на идентификатор автора в цикле Пометка повсюду? Типы сообщений Jetpack Поддержка портфолио или отзывов для настраиваемых полей? Как направить пользователя на фактическую страницу 404, когда проверка является ложной в single.php? Интерфейс, необходимый для передачи содержимого в таблице на веб-странице в интерфейс «Добавить новый продукт» Magic Fields дает ошибку Файл ___ не существует? Тиммум все еще разбит? Какие меры безопасности следует предпринять? Получение значения атрибута из короткого кода добавить span в wp_nav_menu виджет

Невозможность установить соединение при настройке через загружаемый файл play.yml

Я использую рабочий процесс Root.io Trellis .

Я столкнулся с ошибкой, в которой я не мог установить соединение через ansible-playbook .

  1. Когда я запускаю ansible-playbook server.yml -e env=staging он вызывает ошибку, что соединение ssh невозможно установить, поэтому я проверил файл users.yml и увидел проблему в разделе keys :

     - name: "{{ admin_user }}" groups: - sudo keys: - "{{ lookup('file', '~/.ssh/id_rsa.pub') }}" - https://github.com/dummyuser.keys 

    Я понял, что у меня есть уже существующий ключ id_rsa.pub но у меня не было разрешения на моем сервере, вместо этого я использовал https://github.com/dummyuser.keys . Поэтому я удалил эту строку

     - "{{ lookup('file', '~/.ssh/id_rsa.pub') }}" 

    Однако проблема все еще сохраняется. Ответ был:

     fatal: [10.10.2.5]: UNREACHABLE! => { "changed": false, "msg": "Failed to connect to the host via ssh.", "unreachable": true } 

    Также почему config указывает на public key когда нам нужен private key для входа через ssh. Я обычно делаю

     ssh -i ~/.ssh/private_key user@10.10.2.5 

    всякий раз, когда я вхожу на сервер через ssh.

  2. Итак, я использовал другой подход. на этот раз указала ключ на кли

     ansible-playbook server.yml -e env=staging -vvvv --key-file=~/.ssh/dummy_rsa 

    и в результате я смог установить соединение:

     <10.10.2.5> ESTABLISH SSH CONNECTION FOR USER: dummy_admin 

    Но была и другая ошибка: она говорит, a password is required вот полное сообщение:

     fatal: [10.10.2.5]: FAILED! => { "changed": false, "failed": true, "invocation": {"module_name": "setup"}, "module_stderr": "OpenSSH_6.9p1, LibreSSL 2.1.8\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: /etc/ssh/ssh_config line 21: Applying options for *\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 85702\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 1\r\nShared connection to 10.10.2.5 closed.\r\n", "module_stdout": "sudo: a password is required\r\n", "msg": "MODULE FAILURE", "parsed": false } 

    Я не уверен, почему он запрашивает пароль, который я уже установил в моем group_vars/staging/vault.yml вот содержание этого:

     vault_mysql_root_password: stagingpw vault_sudoer_passwords: dummy_admin: $6$rounds=656000$8DWzDN3KQkM9SjlF$DhxLkYaayplFmtj9q.EqzMDWmvlLNKsLU0GPL9E0P2EvkFQBsbjcMCXgWkug4a5E66PfwL4eZQXzMLkhXcPBk0 
  3. Поэтому я, наконец, вошел в систему, используя следующую команду:

     ansible-playbook server.yml -e env=staging -vvvv --key-file=~/.ssh/dummy_rsa --ask-become-pass 

    после того, как я запросил у меня пароль, он работает, и условия моего сервера без проблем.

Может ли кто-нибудь осветить это? Я что-то упускаю? Дайте мне знать, если вам нужно больше деталей.

Solutions Collecting From Web of "Невозможность установить соединение при настройке через загружаемый файл play.yml"

Я также разместил этот вопрос на дискурсе, и @fulint ответил на него подробно. Поэтому я просто размещаю ссылку для ответа и некоторую выдержку

Помогая Ansible и ssh найти необходимый секретный ключ

Это означает, что вы вручную указываете закрытый ключ с каждой командой ssh, и да, результатом ручного указания закрытого ключа с помощью команды anysible-playbook является добавление опции -private-key = или key-file =. Тем не менее, вы можете сэкономить немного хлопот, включив команды ssh и ansible-playbook для автоматического поиска и использования желаемого файла закрытого ключа. Один из подходов – добавить запись в ваш конфигурационный файл ssh, указав IdentityFile, который будет использоваться с Host 10.10.2.5. Я бы рекомендовал альтернативу загрузки ~ / .ssh / dummy_rsa в ваш ssh-agent, который может обрабатывать ключи для вас, пытаясь использовать несколько закрытых ключей при попытке подключения.
Убедитесь, что ваш ssh-агент запущен: ssh-agent bash Добавьте свой ключ: ssh-add ~ / .ssh / dummy_rsa Если вы на Mac, добавьте ключ в свой Keychain: ssh-add -K ~ / .ssh / dummy_rsa Теперь вы должны иметь возможность запускать команды ssh без опции -i и команд с произвольным воспроизведением без параметра -key-file =, потому что ваш ssh-agent будет информировать эти команды о различных доступных закрытых ключах, чтобы попытаться создать ssh.

Причины ошибки "sudo: требуется пароль"

Из задач Trellis запускается через play.yml playbook, некоторые требуют sudo. Это не проблема, когда playbook подключается как root, но иногда playbook не подключается как root. Если это первоначальное соединение пытается сбой root, оно вернется к подключению как admin_user. Этот пользователь должен указать свой пароль sudo с помощью опции -ask-get-pass, как вы обнаружили.
Возможно, вы уже знаете, почему ваша связь с корнем не удалась, но вот некоторые возможности:
Возможно, ваш пульт находится на AWS, где root отключен по умолчанию, а ваш admin_user: ubuntu.
Возможно, вы уже успешно запускаете server.yml с sshd_permit_root_login: false в group_vars / all / security.yml, поэтому root больше не разрешается входить в систему через ssh (хорошая безопасность). Возможно, секретный ключ, который вы пытаетесь использовать, не загружается на удаленный доступ в авторизированных ключах root пользователя

Вероятно, вы не добавили свой открытый ключ в файл authorized_keys внутри машины. Вы также можете добавить свой закрытый ключ к своему локальному агенту SSH.

  1. Поместите свой открытый ключ внутри сервера. Пример для ключа, который уже находится на сервере:

     # Add key directly on the box: echo "$(cat your_public_key)" >> ~/.ssh/authorized_keys # Add key from local to remote: ssh user@server "echo \"$(cat your_public_key)\" >> ~/.ssh/authorized_keys" 
  2. Вам нужно добавить закрытый ключ к вашему агенту

     # Start agent eval "$(ssh-agent -s)" # Add private key ssh-add ~/.ssh/your_private_key