Я пытаюсь запустить простую 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 были права на доступ к колесу ..
Заранее спасибо!