Изменение gsettings для другого пользователя из ansible сценария (запущенный бродягой)

Я уже задал вопрос на stackoverflow, но фигурировал, что это могло быть лучшим местом для получения ответа: Я хочу настроить виртуальную машину с Ubuntu 16 LTS использование бродяги и (локального) ansible. Часть настройки должна добавить и удалить некоторые значки средства запуска Единицы для пользователя, который также создается тем же сценарием. Сценарий запускается с vagrant пользователь. После поиска нескольких связанных вопросов я попробовал изменения

  • dbus-launch --exit-with-session перед командой gsettings
  • become_flags: '-i'
  • become_flags: '-H'
  • become_flags: '-E'

на следующей основной команде ansible

- name: Remove Launcher Icons
  command: gsettings set com.canonical.Unity.Launcher favorites "['application://org.gnome.Nautilus.desktop', 'application://firefox.desktop', 'application://gnome-terminal.desktop', 'application://atom.desktop', 'application://unity-control-center.desktop', 'unity://running-apps', 'unity://expo-icon', 'unity://devices']"
  become: true
  become_user: "{{ user }}"

До сих пор, никакой успех, НО выполнение команды, поскольку зарегистрированный пользователь работает.

РЕДАКТИРОВАНИЕ Мой лучший appoach для решения запустило бы сценарий оболочки от ansible вместо того, чтобы делать изменение в ansible непосредственно. Однако я не уверен, как это должно быть похожим.

7
задан 9 November 2016 в 09:48

2 ответа

Я рекомендую поместить .desktop файл в каждого пользователя ~/.config/autostart папка, которая назовет сценарий установки средства запуска. С другой стороны, место .desktop файл в /etc/xdg/autostart так, чтобы сценарий работал за каждым пользователем, но затем необходимо будет захватить имя пользователя и найти пользовательскую конфигурацию средства запуска в некоторой форме базы данных. Идентификатор лично использует сценарий Python, который читает json файл с именем пользователя: чемодан списка средства запуска, потому что это просто.

1
ответ дан 23 November 2019 в 06:47

Я также боролся с установкой избранного средства запуска через ansible.

Для меня решение состояло в том, чтобы использовать модуль ansible dconf вместо gsettings:

- name: set icons/applications
  dconf:
    key: /com/canonical/unity/launcher/favorites
    value: "{{ launcher_favorites }}"
    state: present

я предполагаю, что это также работает с другими пользователями через become_user (но я не протестировал его).

3
ответ дан 23 November 2019 в 06:47

Другие вопросы по тегам:

Похожие вопросы: