Запустите одну и ту же книгу для разных локальных пользователей - PullRequest
0 голосов
/ 04 мая 2018

Я хотел бы использовать ANSIBLE PlayBook для настройки идентичных конфигураций для двух разных пользователей на моем локальном хосте (то есть, admin & brian). В настоящее время «общая» роль устанавливает программы, доступные для обоих пользователей. Кроме того, у меня есть настройки, которые зависят от пользователя (например, обои для рабочего стола). Когда я запускаю мою книгу воспроизведения, пользовательские настройки обновляются от одного пользователя, а не от другого. Например, если я запускаю свою книгу игр, обои для Брайана меняются, но обои для администратора остаются нетронутыми. Я знаю о становлении стать_пользователем, но не хочу этого для каждой задачи, которую я запускаю. Можно ли определить файл hosts или playbook таким образом, чтобы я мог просто указать пользователей на локальном хосте, с которыми я хочу запускать playbook?

Я пытался Есть ли возможность более эффективно запускать несколько книг Ansible Playbook в качестве нескольких пользователей? на уровне ролей, но появляется следующая ошибка:

фатально: [localhost]: СБОЙ! => {"updated": false, "module_stderr": "/ usr / bin / python2: не удается открыть файл" /home/brian/.ansible/tmp/ansible-tmp-1525409723.54-208533437554058/apt.py ': [Errno 13] Отказано в доступе \ n "," module_stdout ":" "," msg ":" MODULE FAILURE "," rc ": 2}


site.yml

---
- name: ansible master playbook
  hosts: localhost
  connection: local

  roles:
    - role: common


Роли / общий / задачи / main.yml

---
  - import_tasks: gsettings.yml


роли / общие / задачи / gsettings.yml

---
- name:  Use 12 hr. clock format  
  dconf:
    key: "/org/gnome/desktop/interface/clock-format"
    value: "'12h'"

Ответы [ 2 ]

0 голосов
/ 05 мая 2018

Мое решение состояло в том, чтобы просто войти в систему каждого пользователя на моем локальном компьютере и запустить мои сборники игр на местном уровне. Основная проблема с использованием модуля dconf для изменения настроек заключается в том, что D-Bus для другого пользователя не настроен, поэтому настройки для другого пользователя не сохраняются. См. Связанные вопросы ниже.

https://askubuntu.com/questions/655238/as-root-i-can-use-su-to-make-dconf-changes-for-another-user-how-do-i-actually

http://docs.ansible.com/ansible/latest/modules/dconf_module.html

Доступ к сеансу D-Bus другого пользователя

0 голосов
/ 04 мая 2018

В Ansible у вас есть возможность запустить playbook как:

ansible-playbook playbooks/playbook.yml --user user

Обратите внимание, что указание пользователя может иногда конфликтовать с пользователем, определенным в /etc/ansible/hosts.

(из документации Ansible )

...