Я уже задал вопрос на stackoverflow, но фигурировал, что это могло быть лучшим местом для получения ответа: Я хочу настроить виртуальную машину с Ubuntu 16 LTS использование бродяги и (локального) ansible. Часть настройки должна добавить и удалить некоторые значки средства запуска Единицы для пользователя, который также создается тем же сценарием. Сценарий запускается с vagrant
пользователь. После поиска нескольких связанных вопросов я попробовал изменения
dbus-launch --exit-with-session
перед командой gsettingsbecome_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 непосредственно. Однако я не уверен, как это должно быть похожим.
Я рекомендую поместить .desktop
файл в каждого пользователя ~/.config/autostart
папка, которая назовет сценарий установки средства запуска. С другой стороны, место .desktop
файл в /etc/xdg/autostart
так, чтобы сценарий работал за каждым пользователем, но затем необходимо будет захватить имя пользователя и найти пользовательскую конфигурацию средства запуска в некоторой форме базы данных. Идентификатор лично использует сценарий Python, который читает json файл с именем пользователя: чемодан списка средства запуска, потому что это просто.
Я также боролся с установкой избранного средства запуска через ansible.
Для меня решение состояло в том, чтобы использовать модуль ansible dconf
вместо gsettings
:
- name: set icons/applications
dconf:
key: /com/canonical/unity/launcher/favorites
value: "{{ launcher_favorites }}"
state: present
я предполагаю, что это также работает с другими пользователями через become_user
(но я не протестировал его).