Me gustaría usar ansible para administrar un grupo de servidores existentes. Creé un ansible_hosts
archivo y probé con éxito (con la -K
opción) con comandos que solo se dirigen a un solo host
ansible -i ansible_hosts host1 --sudo -K # + commands ...
Mi problema ahora es que las contraseñas de usuario en cada host son diferentes, pero no puedo encontrar una manera de manejar esto en Ansible.
Utilizando -K
, solo se me solicita una contraseña de sudo única por adelantado, que luego parece intentarse para todos los hosts posteriores sin preguntar:
host1 | ...
host2 | FAILED => Incorrect sudo password
host3 | FAILED => Incorrect sudo password
host4 | FAILED => Incorrect sudo password
host5 | FAILED => Incorrect sudo password
Investigación hasta ahora:
una pregunta de StackOverflow con una respuesta incorrecta ("uso
-K
") y una respuesta del autor diciendo "Descubrí que necesitaba sudo sin contraseña"los documentos de Ansible , que dicen "El uso de sudo sin contraseña hace que las cosas sean más fáciles de automatizar, pero no es obligatorio ". (énfasis mío)
esta pregunta de seguridad de StackExchange que lo toma como leído y que
NOPASSWD
es obligatorioartículo "Aprovisionamiento escalable y comprensible ..." que dice:
"ejecutar sudo puede requerir escribir una contraseña, que es una forma segura de bloquear Ansible para siempre. Una solución simple es ejecutar visudo en el host de destino y asegurarse de que el usuario que Ansible usará para iniciar sesión no tenga que escribir una contraseña"
artículo "Cuadernos de juego básicos y accesibles" , que dice
"Ansible podría iniciar sesión en el servidor de destino como root y evitar la necesidad de sudo, o dejar que el usuario ansible tenga sudo sin contraseña, pero la idea de hacerlo hace que mi bazo amenace con saltarme la garganta y bloquear la tráquea, así que no "
Mis pensamientos exactamente, pero ¿cómo extenderse más allá de un solo servidor?
problema ansible # 1227 , "Ansible debe solicitar la contraseña de sudo para todos los usuarios en un libro de jugadas", que fue cerrado hace un año por mpdehaan con el comentario "No he visto mucha demanda de esto, creo que la mayoría de las personas están sudo de solo uno cuenta de usuario o usando claves la mayor parte del tiempo ".
Entonces ... ¿cómo usan las personas Ansible en situaciones como estas? Ajuste NOPASSWD
de /etc/sudoers
, la reutilización de contraseña a través de anfitriones o habilitación de inicio de sesión SSH raíz todos parecen reducciones más drásticas de seguridad.
sudo
(lo que aún debería requerir una contraseña).
ansible_ssh_password
configuración solo se aplica a la contraseña SSH (la pista está en el nombre ...). & Ya estoy usando el inicio de sesión SSH basado en claves.