Установка Homebrew через Ansible застряла

#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, но тщетно