Рейтинг:1

Ansible playbook не работает и для локального хоста, как это исправить?

флаг cn

Я запускаю ansible на машине Centos

[ansadmin@ansible docker]$ ls
Dockerfile хосты simple-devops-image.yml webapp.war
[ansadmin@ansible docker]$ хосты кошек
локальный хост

простой-devops-image.yml

---
- хозяева: все
  стать истинным

  задачи:
  - имя: остановить текущий запущенный контейнер
    команда: docker stop простой-devops-контейнер
    ignore_errors: да

  - имя: удалить остановленный контейнер
    команда: docker rm простой-devops-контейнер
    ignore_errors: да

  - имя: удалить образ докера
    команда: docker rmi simple-devops-image
    ignore_errors: да

  - имя: построить образ докера с помощью войны
    команда: docker build -t simple-devops-image.
    аргументы:
      chdir: /opt/докер
  - имя: создать контейнер, используя простое изображение
    команда: docker run -d --name simple-devops-container -p 8080:8080 simple-devops-image

Даже на локальном хосте мне отказывают в доступе. Пользователь уже имеет права sudo.

ansible-playbook -i hosts simple-devops-image.yml --check

Играть все] ********************************************** ******************************************************* *************

ЗАДАНИЕ [Сбор фактов] *************************************************** ******************************************************* **
фатальный: [localhost]: НЕДОСТУПНО! => {"changed": false, "msg": "Не удалось подключиться к хосту через ssh: ansadmin@localhost: Отказано в доступе (publickey,gssapi-keyex,gssapi-with-mic,password).", "unreachable" : истинный}

ОБЗОР ИГРЫ ******************************************************* ******************************************************* ***********
localhost: ok=0 изменено=0 недостижимо=1 не удалось=0 пропущено=0 спасено=0 проигнорировано=0

пинг работает.

[ansadmin@ansible docker]$ ping localhost
PING localhost(localhost (::1)) 56 байт данных
64 байта от локального хоста (::1): icmp_seq=1 ttl=64 время=0,024 мс
64 байта от локального хоста (::1): icmp_seq=2 ttl=64 время=0,045 мс
64 байта от локального хоста (::1): icmp_seq=3 ttl=64 time=0,045 мс
Рейтинг:2
флаг jp

Вам не нужно ssh связь для локальный хост.

Просто обновите свой хозяева файл для включения ansible_connection = местный за локальный хост

локальный хост ansible_connection = локальный

Кроме того, убедитесь, что вы не переопределяете ansible_connection к ssh где-нибудь еще.

Рейтинг:1
флаг cn

Причина, по которой это не удалось, заключается в том, что вы не сказали Ansible запрашивать пароль и еще не настроили SSH-ключи.

Твой ssh-копия-идентификатор Команда копирует ваш SSH-ключ на целевой хост (в данном случае на поле, на котором вы находитесь) и устанавливает его, чтобы SSH работал без пароля.

Другой путь чтобы заставить это работать, нужно добавить правильные флаги в команду playbook:

ansible-playbook playbook.yml -k

или если вам также нужен пароль sudo:

ansible-playbook playbook.yml -bkK

  • запрашивает пароль («ключ») для пользователя SSH
  • сообщает ansible о повышении до привилегированного пользователя (по умолчанию используется sudo)
  • просит пароль для повышения.
Рейтинг:0
флаг cn

выполнение команды ниже устранило проблему.

ssh-копия-идентификатор ansadmin@localhost

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.