Ошибка: sudo: требуется пароль \ r \ n - хотя у пользователя есть права на sudoers - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь запустить простую Ansible пьесу, которая показывает содержимое «домашнего» каталога.

Она запускается успешно, но когда я использую:

become_user: "{{ TARGET_USER }}"

, я получаю ошибка:

 "sudo: a password is required\r\n"

«Ansible пользователь» - «blnapp1», а «целевой пользователь» - «couchbase»

Я добавил разрешения для пользователей «blnapp1» и «couchbase» Внутри файла sudoers:

## Allow root to run any commands anywhere
root    ALL=(ALL) ALL 
blnapp1 ALL=(ALL) NOPASSWD: ALL
blnapp1 ALL=(ALL) ALL
ansible ALL= NOPASSWD: /home/blnapp1/playbook #path to playbook
couchbase ALL=(ALL) NOPASSWD: ALL
couchbase ALL=(ALL) ALL

Я также добавил всем пользователям s sh publi c ключ друг к другу в /.ssh/authorized_keys

Вот мой файл инвентаря:

web1 ansible_host=**** ansible_connection=local

[couchbase-install:children]
couchbase_cluster_nodes
couchbase_server_nodes

[couchbase_cluster_nodes]
primary1 ansible_host=**** ansible_user=blnapp1 TARGET_USER=couchbase couchbase_primary_cluster_node=**** couchbase_cluster_admin_port=*** couchbase_bucket_name=exampleBucket group_server=default

[couchbase_server_nodes]

[all:vars]
#configuration_mode can be vars or cc
configuration_mode=vars
couchbase_data_path="/userdata/data/CB/var/lib/couchbase/data"
couchbase_index_path= "/userdata/data/CB/var/lib/couchbase/data"
yum_path="sudo /bin/yum"
#couchbase_admin="Administrator"
#couchbase_password="Administrator"

А вот моя книга игр:

---

- name: I-test
  hosts: primary1
  become: true
  become_user: "{{ TARGET_USER }}"

  tasks:
  - debug:
      msg: 'TARGET_USER is: "{{ TARGET_USER }}"'
  - name: show repo content
    shell: 
      cmd: ls -la /home

Единственный способ, который я нашел, - это добавить пользователя "blnapp1" в группу "wheel". Однако я действительно не хочу, чтобы у blnapp1 были права на доступ к колесу ..

Заранее спасибо!

1 Ответ

0 голосов
/ 31 марта 2020
blnapp1 ALL=(ALL) NOPASSWD: ALL
blnapp1 ALL=(ALL) ALL

Эти две строки в основном говорят одно и то же: пусть blnapp1 запускает любую команду как любой. Но первый говорит sudo не запрашивать пароль, а второй - нет.

И после быстрого тестирования с изображением debian:buster docker он отображает только последнюю строку, в которой встречаются правила в этом случае sudo всегда запрашивает пароль.

Просто удалите вторую строку в файле sudoers. Обратите внимание, что у вас точно такая же проблема для вашего couchbase пользователя.

...