Я хотел бы использовать ansible для управления группой существующих серверов. Я создал ansible_hosts
файл и успешно протестировал (с -K
возможностью) команды, предназначенные только для одного хоста.
ansible -i ansible_hosts host1 --sudo -K # + commands ...
Моя проблема сейчас в том, что пароли пользователей на каждом хосте разные, но я не могу найти способ справиться с этим в Ansible.
Используя -K
, я запрашиваю только один пароль sudo заранее, который затем, кажется, пробуется для всех последующих хостов без запроса:
host1 | ...
host2 | FAILED => Incorrect sudo password
host3 | FAILED => Incorrect sudo password
host4 | FAILED => Incorrect sudo password
host5 | FAILED => Incorrect sudo password
Исследования до сих пор:
StackOverflow вопрос одним неправильного ответа ( «использование
-K
») и один ответ автор говоря „Узнал я нуждался в беспарольной Sudo“Документы Ansible , в которых говорится: «Использование sudo без пароля упрощает автоматизацию, но это не требуется ». (акцент мой)
этот вопрос безопасности StackExchange, который принимает его как прочитанное, что
NOPASSWD
требуетсястатья "Масштабируемая и понятная инициализация ...", в которой говорится:
«Для запуска sudo может потребоваться ввести пароль, что является надежным способом навсегда заблокировать Ansible. Простое решение - запустить visudo на целевом хосте и убедиться, что пользователь Ansible будет использовать для входа в систему не нужно вводить пароль»
статья "Основные Ansible Playbooks" , в которой говорится
«Ansible может войти на целевой сервер от имени root и избежать необходимости sudo, или позволить пользователю ansible иметь sudo без пароля, но сама мысль о том, что это может привести к тому, что моя селезенка угрожает вскочить в глотку и заблокировать дыхательную трубку, поэтому я не»
Мои мысли точно, но тогда как выйти за пределы одного сервера?
Ответ № 1227 , «Ansible должен запрашивать пароль sudo для всех пользователей в книге игр», который был закрыт год назад mpdehaan с комментарием «Не видел большого спроса на это, я думаю, что большинство людей судятся только от одного учетную запись пользователя или использование ключей большую часть времени. "
Итак ... как люди используют Ansible в подобных ситуациях? Установка NOPASSWD
в /etc/sudoers
, повторное использование пароля по хостам или позволяя корневой SSH логин все , кажется , довольно резкое сокращение безопасности.
sudo
(который все еще должен требовать пароль).
ansible_ssh_password
параметр применяется только к паролю SSH (разгадка во имя ...). & Я уже использую SSH-вход на основе ключей.