Ответ: homebrew_cask выдает «Недопустимый бочонок: XXX»

#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. Эта ошибка устраняется с помощью запроса на извлечение.