Arhn - архитектура программирования

Ansible выдает предупреждение о локальном хосте

Я запускаю следующую пьесу ansible

- hosts: localhost
  connection: local
  vars_files:
    - vars/config_values.yaml

  gather_facts: no

  tasks:
    - name: Set correct project in gcloud config
      shell: "gcloud config set project {{ google_project_name }}"

Что дает следующее предупреждение:

[ВНИМАНИЕ]: Инвентаризация не проанализирована, доступен только неявный локальный хост.

[ВНИМАНИЕ]: предоставленный список хостов пуст, доступен только локальный хост. Обратите внимание, что неявный локальный хост не соответствует «всем»

Учитывая, что я прямо заявляю, что он будет работать с host: localhost, почему он жалуется на отсутствие анализа инвентаризации и на то, что предоставленный список хостов пуст?

Как убрать эти предупреждения? (не просто подавляя их, если это возможно)

27.01.2020

Ответы:


1

Это просто предупреждение о том, что вы не предоставили никакого файла инвентаризации (с -i), что файл по умолчанию (обычно /etc/ansible/hosts) не может быть найден, и поэтому ваш инвентарь пуст, а содержит только неявный локальный хост.

hosts: localhost — цель вашей игры. Это может быть хост или группа (или более сложный шаблон). ). Целевые хосты должны существовать в реестре, которым можно управлять. localhost всегда существует как неявная локальная машина.

См. https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html

Если ваш инвентарь по умолчанию останется пустым и вы в основном запускаете только плейбуки, ориентированные на локальный хост, вы можете отключить это предупреждение, установив config в вашей среде или в ansible cfg (спасибо @larsk за запрос на вытягивание с добавлением этой функции).

28.01.2020
  • Спасибо. Можно ли отключить предупреждение? 28.01.2020
  • Да: создать инвентарь по умолчанию с фиктивной записью внутри. Или лучше настоящий инвентарь. 28.01.2020
  • Бывает так, что @larsk, который часто приходит сюда, предложил принятый патч, чтобы подавить это предупреждение. github.com/ansible/ansible/pull/37871/files. Вы должны иметь возможность удалить его путем настройки. Спасибо, что заставил меня открыть это. 28.01.2020
  • ... хотя на самом деле параметр конфигурации localhost_warning подавляет только второе из двух предупреждений, перечисленных в вопросе (при условии, что список хостов пуст, доступен только локальный хост...). Другое предупреждение (инвентарь не анализировался, доступен только неявный локальный хост) нельзя подавить с помощью параметра конфигурации. 20.06.2021

  • 2

    Как не специалист. в Ansible я подавил эти сообщения, добавив localhost в файл /etc/ansible/hosts. Затем установите hosts: localhost в файле playbook. Вы должны быть хорошими и не будете видеть эти предупреждающие сообщения.

    Файл hosts

    [ec2-user@ip-192-168-1-38 ~]$ sudo head -20 /etc/ansible/hosts
    # This is the default ansible 'hosts' file.
    #
    # It should live in /etc/ansible/hosts
    #
    #   - Comments begin with the '#' character
    #   - Blank lines are ignored
    #   - Groups of hosts are delimited by [header] elements
    #   - You can enter hostnames or ip addresses
    
    #   - A hostname/ip can be a member of multiple groups
    
    # Ex 1: Ungrouped hosts, specify before any group headers.
    localhost
    ## green.example.com
    ## blue.example.com
    ## 192.168.100.1
    ## 192.168.100.10
    
    # Ex 2: A collection of hosts belonging to the 'webservers' group
    
    ## [webservers]
    

    Файл Playbook

    [ec2-user@ip-192-168-1-38  ~]$ cat msteams.yml
      - name: MSTeams    
        hosts: localhost
        connection: local
        gather_facts: false
        tasks:
        - name: MSTeams Sending
          uri:
            url: https://outlook.office.com/webhook/asdasda-asdasd-40sdfd-btryrty2-posadjfm,sdnfoersmdnrfoasf,mvmnmtrny40956839523842/IncomingWebhook/102938091283kdjoasdyo214/vnmlasdhfaosldnaehywe
            method: POST
            body: "{\"text\": \"**Header:** {{Header}}\n\n **Next Line Message1:** {{MESSAGE1}}\n\n **Next Line Message2:** '{{ MESSAGE2 }}'\", \"themeColor\": \"{{COLOR}}\"}"
            body_format: json
            headers:
              Content-Type: "application/json"
    

    Результат команды

    [ec2-user@ip-192-168-1-38 ~]$ ansible-playbook msteams.yml -e "Header=TEST" -e "MESSAGE1=Message_without_space" -e ' MESSAGE2="Message with space" ' -e "COLOR=##FF0000"
    
    PLAY [MSTeams] ***********************************************************************************************************************************************************************************************
    
    TASK [MSTeams Sending] ************************************************************************************************************************************************************************************
    ok: [localhost]
    
    
    PLAY RECAP ****************************************************************************************************************************************************************************************************************
    localhost                 : ok=1    changed=0    unreachable=0    failed=0
    
    07.07.2020
  • Это действительно работает, но вы должны знать об одном возможном предостережении: объявление localhost в вашем инвентаре делает его явным, и поэтому теперь оно будет соответствовать группе по умолчанию all, если вы когда-либо будете использовать его в своем плейбуке. Обычно это не то, что вы хотите. Более того, если вы действительно это сделаете, я предлагаю вам добавить ansible_connection: local в инвентарь для этого хоста, чтобы убедиться, что используется правильное соединение, без необходимости указывать его в вашей игре/задаче. 05.01.2021
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..