Рейтинг:1

Как выполнить win_ping на хосты с файлами inventory и group_vars?

флаг uz
  • Я пытаюсь написать правильную командную строку, которая будет пинговать все хосты, указанные в моем файле инвентаризации.
  • мой докерфайл:
ОТ СЕНТОС:7

ЗАПУСК yum check-update; \
    yum install -y gcc libffi-devel python3 epel-release; \
    yum установить -y python3-pip; \
    ням установить -y wget; \
    ням чистить все

RUN pip3 install --upgrade pip; \
    pip3 установить «невозможно»; \
    wget -q https://raw.githubusercontent.com/ansible-collections/azure/dev/requirements-azure.txt; \
    pip3 install -r требования-azure.txt; \
    требования rm-azure.txt; \
    коллекция ansible-galaxy установить azure.azcollection \

РАБОЧИЙ КАТАЛОГ /github
CMD ["/usr/sbin/инит"]
  • Все хосты являются хостами ОС Windows
  • Ниже моей структуры библиотеки Ansible
С:.
ââââbla_product
    ✓ ядро
        ââââансибль
        ââââзапасы
        â â ââââпроизводство
        â ââââпостановка
        â–––тест
        â â ââââоблако
        â â â–––на территории
        ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ домен.com
        â â â lab_x.yml
        â â â
        â â ââââgroup_vars
        ✓ windows.yml
        â
        ââââplaybooks
        ââââроли
  • мой файл инвентаризации lab_x.yml выглядит так:
---
все:
  дети:
    корень:
      дети:
        центр:
          дети:
            серверы приложений:
              хосты:
                centeriis.domain.com:
                  доступный_хост: 200.10.0.100
            qсерверы:
              хосты:
                centerq.domain.com:
                  доступный_хост: 200.10.0.101
            серверы баз данных:
              хосты:
                centerdb.domain.com:
                  доступный_хост: 200.10.0.102
        серверные фермы:
          хосты:
          дети:
            шлюзы:
              хосты:
        юг:
          дети:
            Бруклин:
              хосты:
                  srv1.домен.com:
                    доступный_хост: 200.10.0.103
              дети:
                конечные точки:
                  хосты:
                    client1.domain.com:
                      доступный_хост: 200.10.0.105
                    client2.domain.com:
                      доступный_хост: 200.10.0.106
        к северу:
          дети:
            Нью-Йорк:
              хосты:
                srv2.домен.com:
                  доступный_хост: 200.10.0.104
              дети:
                конечные точки:
                  хосты:
                    client3.domain.com:
                      доступный_хост: 200.10.0.107
  • windows.yml файл включает сведения о подключении, которые относятся ко всем хостам, поскольку все они являются хостами ОС Windows:
---
ansible_connection: winrm
ansible_user: домен\пользователь
ansible_password: пароль
  • Выполните следующую команду ansible all -i lab_r.yml -m win_ping Результаты:
[ПРЕДУПРЕЖДЕНИЕ ОБ УСТАРЕНИИ]: Ansible потребует Python 3.8 или новее на контроллере, начиная с Ansible 2.12. Текущая версия: 3.6.8 (по умолчанию, 16 ноября 2020 г., 16:55:22) [GCC
 4.8.5 20150623 (Red Hat 4.8.5-44)]. Эта функция будет удалена из ansible-core в версии 2.12. Предупреждения об устаревании можно отключить, установив 
deprecation_warnings=False в файле ansible.cfg.
centeriis.domain.com | НЕДОСТУПНО! => {
    «изменено»: ложь,
    "msg": "[Errno None] Не удалось подключиться к порту 22 на 200.10.0.100",
    "недостижимый": правда
}
  • пробую этот доступный windows.yml -i lab_r.yml -m win_ping дает:
[ПРЕДУПРЕЖДЕНИЕ ОБ УСТАРЕНИИ]: Ansible потребует Python 3.8 или новее на контроллере, начиная с Ansible 2.12. Текущая версия: 3.6.8 (по умолчанию, 16 ноября 2020 г., 16:55:22) [GCC
 4.8.5 20150623 (Red Hat 4.8.5-44)]. Эта функция будет удалена из ansible-core в версии 2.12. Предупреждения об устаревании можно отключить, установив 
deprecation_warnings=False в файле ansible.cfg.
[ВНИМАНИЕ]: не удалось сопоставить предоставленный шаблон хоста, игнорируя: windows.yml
[ПРЕДУПРЕЖДЕНИЕ]: нет подходящих хостов, ничего не нужно делать
  • Чего мне не хватает в этой "истории"?
  • Проблема в файлах ИЛИ в командах?
  • В чем причина того, что Ansible использует порт 22 вместо протокола WinRM?
  • Может ли команда win_ping работать на этом этапе ИЛИ я должен иметь playbook и файлы ролей (задач), чтобы она работала?
  • Как мне заставить работать весь этот бизнес (команда, которая использует файлы в папке Inventories и group_vars)?
Рейтинг:1
флаг in

Ни один из хостов в вашем инвентаре не входит в группу под названием «windows», поэтому ваш файл windows.yml никогда не используется, и Ansible возвращается к протоколу по умолчанию, то есть ssh.

Если у вас есть только серверы Windows, самым простым решением будет поместить информацию о подключении в файл all.yml.

флаг uz
Я добавляю следующую строку в свой dockerfile: ```pip3 install "pywinrm>=0.2.2" ```. также измените файл на ```all.yml```.выполнение команды с явным путем к файлу инвентаризации следующим образом: ```ansible all -i inventory/test/onpremis/domain.com/lab_r.yml -m win_ping``` завершается успешно.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.