Подтвердить что ты не робот

Неспособность 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.

4b9b3361

Ответ 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