#ansible #homebrew
#ansible #homebrew
Вопрос:
Я изучаю Ansible и пытаюсь преобразовать эти команды Homebrew с помощью Ansible homebrew_tap
и homebrew_cask
:
brew tap homebrew/cask-fonts
brew install --cask font-hack-nerd-font
Мой сборник задач Ansible выглядит следующим образом:
---
- name: test
hosts: localhost
tasks:
- name: Tapping homebrew/cask-fonts
homebrew_tap:
name: homebrew/cask-fonts
- name: Installing Nerd Font
homebrew_cask:
name: font-hack-nerd-font
Когда я запускаю его, я получаю эту ошибку:
PLAY [test] ****************************************************************************************************************************************************************************************************************************
TASK [Gathering Facts] *****************************************************************************************************************************************************************************************************************
ok: [localhost]
TASK [Tapping homebrew/cask-fonts] *****************************************************************************************************************************************************************************************************
ok: [localhost]
TASK [Installing Nerd Font] ************************************************************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Invalid cask: font-hack-nerd-font."}
PLAY RECAP *****************************************************************************************************************************************************************************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
Я надеюсь, что смогу выполнить это напрямую, используя homebrew_cask
without brew
command.
Любые рекомендации приветствуются. Спасибо.
Комментарии:
1. Вы пробовали включить
update_homebrew: yes
в своюhomebrew_cask:
задачу? возможно, CLI делает это автоматически, но ansible предпочитает не делать этого, чтобы не смешивать эти два действия. Запуск ansible с более высокой детализацией также может помочь выяснить разницу2. Да, я сделал, и я вижу ту же ошибку. Когда я использую
upgrade_all
, он прошел мимо задачи, но когда я запускаюbrew list
, он не был установлен. Похоже, это происходит только тогда, когда контейнер «прослушивается» из других внешних репозиториев.
Ответ №1:
Сообщается об ошибке из-за дефиса (ов) в имени пакета cask. Эта ошибка устраняется с помощью запроса на извлечение.