Неспособность 1.9.1 "стать" и судо-проблема
Я пытаюсь запустить чрезвычайно простой учебник для тестирования новой установки Ansible.
При использовании опций конфигурации "новый" Ansible Privilege Escalation в файле ansible.cfg:
[defaults]
host_key_checking=false
log_path=./logs/ansible.log
executable=/bin/bash
#callback_plugins=./lib/callback_plugins
######
[privilege_escalation]
become=True
become_method='sudo'
become_user='tstuser01'
become_ask_pass=False
[ssh_connection]
scp_if_ssh=True
Я получаю следующую ошибку:
fatal: [webserver1.local] => Internal Error: this module does not support running commands via 'sudo'
FATAL: all hosts have already failed -- aborting
Плейбус также очень прост:
# Checks the hosts provisioned by midrange
---
- name: Test su connecting as current user
hosts: all
gather_facts: no
tasks:
- name: "sudo to configued user -- tstuser01"
#action: ping
command: /usr/bin/whoami
Я не уверен, что что-то сломано в Ansible 1.9.1, или если я что-то делаю неправильно. Разумеется, модуль "command" в Ansible позволяет запускать команды как sudo.
Ответы
Ответ 1
Проблема связана с конфигурацией; Я также взял it в качестве примера и получил ту же проблему. Некоторое время после игры я заметил, что следующие работы:
1) устарел sudo
:
---
- hosts: all
sudo: yes
gather_facts: no
tasks:
- name: "sudo to root"
command: /usr/bin/whoami
2) новый become
---
- hosts: all
become: yes
become_method: sudo
gather_facts: no
tasks:
- name: "sudo to root"
command: /usr/bin/whoami
3), используя ansible.cfg:
[privilege_escalation]
become = yes
become_method = sudo
а затем в playbook:
---
- hosts: all
gather_facts: no
tasks:
- name: "sudo to root"
command: /usr/bin/whoami
так как вы "становитесь" tstuser01 (не такой корень, как я), пожалуйста, немного поиграйте, вероятно, имя пользователя также не должно быть процитировано:
become_user = tstuser01
По крайней мере, так я определяю remote_user в ansible.cfg, и он работает... Моя проблема решена, надеюсь, что вы тоже
Ответ 2
Я думаю, вы должны использовать директиву sudo
в разделе хостов, чтобы последующие задачи могли выполняться с привилегиями sudo, если вы явно не указали sudo:no
в задаче.
Вот ваш плей-лист, который я изменил, чтобы использовать директиву sudo
.
# Checks the hosts provisioned by midrange
---
- hosts: all
sudo: yes
gather_facts: no
tasks:
- name: "sudo to configued user -- tstuser01"
command: /usr/bin/whoami