Новое в ансибле: попробуй playbook, в котором есть 1 задача и 1 предварительная задача. Задача копирует файл, который успешно выполняется. Предварительная задача проверяет домашнее пивоварение и, если оно отсутствует, установлено. Это вызывает у меня эту ошибку.

ОШИБКА! поле "хосты" является обязательным, но не задано

Я уже установил значение hosts в верхней части плейбука как localhost, я использую только локальный хост. Я вставил сюда всю пьесу:

Ваша помощь приветствуется. Благодарность

---
- hosts: localhost
  tasks:
   - copy: 
      src: "~/.master.testconfig" 
      dest: "~/.testconfig"

- pre_tasks:
   - name: Ensure Homebrew is Installed
     stat:
      path: /usr/local/bin/brew
      register: homebrew_check

   - name: Fail If Homebrew Is Not Installed
     fail: 
       msg: Homebrew is missing.. Install from http://brew.sh/
       when:
         - not homebrew_check.stat.exists

   - name: Installing Homebrew
     shell: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
     when:
       - not homebrew_check.stat.exists
       - install_homebrew_if_missing

Вывод: [ПРЕДУПРЕЖДЕНИЕ]: инвентарь не был проанализирован, доступен только неявный localhost [ПРЕДУПРЕЖДЕНИЕ]: если список узлов пуст, доступен только localhost. Обратите внимание, что неявный localhost не соответствует 'all'

ИГРАТЬ [localhost] ******************************************** **************************************

ЗАДАЧА [Сбор фактов] ******************************************* ******************************** ОК: [localhost]

ЗАДАЧА [копия] ********************************************* ***************************************** ОК: [localhost] ОШИБКА! поле "хосты" является обязательным, но не задано

1
user1403505 18 Апр 2020 в 14:52

1 ответ

Лучший ответ

Ошибка связана с синтаксической ошибкой: вам не нужно - для pre_tasks. Другая проблема - неправильный отступ.

Правильный синтаксис:

---
- hosts: localhost
  tasks:
    - copy: 
        src: "~/.master.testconfig" 
        dest: "~/.testconfig"
  pre_tasks:
    - name: Ensure Homebrew is Installed
      stat:
        path: /usr/local/bin/brew
        register: homebrew_check

    - name: Fail If Homebrew Is Not Installed
      fail: 
        msg: Homebrew is missing.. Install from http://brew.sh/
      when: not homebrew_check.stat.exists

    - name: Installing Homebrew
      shell: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
      when:
        - not homebrew_check.stat.exists
        - install_homebrew_if_missing
1
sakibmoon 18 Апр 2020 в 12:05