- Я пытаюсь написать правильную командную строку, которая будет пинговать все хосты, указанные в моем файле инвентаризации.
- мой докерфайл:
ОТ СЕНТОС: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)?