#ansible
#ansible
Вопрос:
Я пытаюсь настроить Homebrew через Ansible для автоматизации виртуальной машины Mac, работающей в VMware, в Mac Catalina guest. Я пробовал серверные фрагменты, доступные онлайн, но ни один из них не работал.
Это наиболее рекомендуемый сценарий. Я пробовал с become amp; become_user
- name: Install Homebrew
# script: install-homebrew.sh
shell: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Кто-то предложил запустить его в синхронном режиме. Теперь скрипт очень отзывчивый, но жалуется и останавливается, поскольку требует доступа sudo, хотя пользователь, которым я становлюсь, уже выполняет роль администратора в macOS.
- name: Install Homebrew
# script: install-homebrew.sh
shell: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
become_user: seng
become: yes
async: 30
poll: 5
register: out2
Я подозревал, что Python 2.7, поэтому я создал экземпляр Python 3.8.5 вручную с помощью pyenv, затем использовал его как python_interpretor , который тоже ведет себя так же, как счетчик python по умолчанию в macOS. Часть.
Я пробовал отдельные методы сценария оболочки, команды и оболочки, но все они сталкиваются с застрявшим противником
Комментарии:
1. все они сталкиваются с зависшим противником , скорее всего, потому, что запускается этот скрипт
sudo
, который запрашивает ваш пароль; вам нужно либо временно добавитьNOPASSWD:
к параметрам sudo этого пользователя, либо использовать метод установки только без tar и создать каталоги установки самостоятельно2. brew должен быть установлен как обычный пользователь, без режима sudo, когда мы устанавливаем его на Mac вручную через терминал. Я запускаю с помощью —ask-become-pass и предоставляю свой пароль пользователя в начале запуска playbook. Пользователь seng является администратором (sudoer) в целевой системе Mac.
3. И он установлен как обычный пользователь, но он использует sudo для chown /usr /local /Homebrew и запускает softwareupdate ; возможно, вам удастся выполнить некоторые хитрости с
$SUDO_ASKPASS
4. Как я могу перевести это на Ansible? Я также пробовал become_method с sudo, su, но тщетно