Не удается переключить пользователя в ANSIBLE - PullRequest
0 голосов
/ 25 октября 2019

У нас есть система, в которой у нас есть пользователь A и пользователь B. Мы можем переключиться на пользователя B с A, используя только команду "sudo su". Прямой вход в систему для пользователя B. не разрешен.

Теперь С Ansible master мы можем успешно войти в систему для пользователя A (как удаленного пользователя). Наш вариант использования: мы должны запускать некоторые команды как пользователь B, используя ansible. Но мы не можем переключиться на пользователя B и выполнить эти команды.

Наш файл yml выглядит как -

Модуль для копирования Java на целевой хост.

- name: Copying Java jdk1.8.0_192
  remote_user: A
  become_user: B
  become: true
  become_method: su
  copy:
    src: /etc/ansible/jboss7-cluster/raw_template/jdk1.8.0_192.zip
    dest: "{{ java_install_dir }}"

Любые входы?

1 Ответ

0 голосов
/ 25 октября 2019

В вашем случае, я считаю, become_method должно быть по умолчанию sudo. Вы пытались использовать это? Если так, каков результат? Можете ли вы скопировать / вставить результат здесь?

Кроме того, вы можете попробовать выполнить специальную команду для хоста и опубликовать результат здесь?

Примерно так: ansible -i inventory.ini -u A --become --become-user B -m ping myhost

И еще одна вещь: обратите внимание, что некоторые ограничения при использовании become для переключения на непривилегированного пользователя:

"В дополнение к дополнительным средствамДелая это безопасно, Ansible 2.1 также затрудняет неосознанно делать это небезопасно, тогда как в Ansible 2.0.x и ниже Ansible будет молча разрешать небезопасное поведение, если ему не удалось найти другой способ поделиться файлами с непривилегированным пользователем, вAnsible 2.1 и выше Ansible по умолчанию выдает ошибку, если не может сделать это безопасно. Если вы не можете внести какие-либо изменения выше для решения проблемы, и вы решаете, что машина, на которой вы работаете, является достаточно безопасной длячтобы модули, которые вы хотите запустить, были доступны для чтения всем, вы можете включить allow_world_readable_tmpfiles в файле ansible.cfg. readable_tmpfiles изменит это из ошибки в предупреждение и позволит заданию запускаться так, как это было до версии 2.1. по крайней мере sudo su -. Они будут правильно заполнять окружающую среду, в отличие от sudo su. Чтобы узнать, почему вы этого хотите, см. здесь .

...