George
vpn поднять красиво внутри самого ансибла на контроллере - такое себе, проще договориться, что контроллер всегда подключен по впн к указанной группе узлов, ну, и норм ) и ты в ансибле только по ссш ходишь
Oleg
ок. спасибо
Roman
Заюзать ssh-agent
использую key для подключения вместо пароля
Oleg
Привет. Кто-то сталкивался с проблемой boto3 required?
Oleg
Суть - пытаюсь получить инфу о сабнете через сабнет ид.
Grek 🇺🇦
в чем проблема?
Oleg
Получаю failed boto3 required for this module
Grek 🇺🇦
какой модуль?
Отделение Bereke Bank
pip install boto3
Oleg
При этом boto3 установлен - pip3 show показывает инфу о нем.
Grek 🇺🇦
а интерпритатор точно 3 используется?
Oleg
Модуль ec2_vpc_subnet_info
Grek 🇺🇦
в ансибле какой интерпритатор используется? запустите плейбук с -vvv и посмотрите
Oleg
Python version = 3.6.9
Sebor▂▅▇█▓▒░
Oleg
С - vvv?
Vladislav 👻
Модуль ec2_vpc_subnet_info
Модуль должен быть на хосте, где выполнение происходит
Oleg
fatal: [localhost]: FAILED! => {"changed": false, "msg": "boto3 is required for this module"}
Vladislav 👻
А не где запускаете
Oleg
pip3 show boto3 Name: boto3 Version: 1.14.51 Summary: The AWS SDK for Python Home-page: https://github.com/boto/boto3 Author: Amazon Web Services Author-email: UNKNOWN License: Apache License 2.0 Location: /usr/local/lib/python3.6/dist-packages Requires: botocore, jmespath, s3transfer
Grek 🇺🇦
пользователь под которым запускается плейбук, для него точно установлен boto3?
Vladislav 👻
Еще раз, модуль должен стоять, не там где запускается плейбук, а куда он идет
Vladislav 👻
И в соответствующий интерпретатор, соответственно
Oleg
А не где запускаете
ОК. Вот есть модуль. https://docs.ansible.com/ansible/latest/modules/ec2_vpc_subnet_info_module.html Пытаюсь заюзать эту часть: ——————————— - ec2_vpc_subnet_info: subnet_ids: subnet-00112233 ———————————
Vladislav 👻
И?
Oleg
- hosts: localhost connection: local gather_facts: False vars: subnet: "subnet-c8d80ca3" tasks: - name: Get subnet info ec2_vpc_subnet_info: subnet_ids: subnet-c8d80ca3 register: subnet_info - name: Get debug info debug: var: "{{ subnet_info }}"
Oleg
Это весь плейбук.
Oleg
Правильно ?
Oleg
Вары даже не нужны - все прописано в таске.
Vladislav 👻
Не уверен, тут и локалхост и конекшин локал
Vladislav 👻
Какой-то ахтунг
Vladislav 👻
И что в инвентори для данного хоста вообще неизвестно
Oleg
А как правильно?
Grek 🇺🇦
это норм, чтоб на локалхост ходить без авторизации
Oleg
У меня нет никаких инстансов. Есть сабнеты, где мне надо будет сотворить инстансы.
Oleg
И я хочу получить инфу о сабнетах.
Grek 🇺🇦
А как правильно?
сделайте через local_action, чтоб уйти от локалхоста
Sebor▂▅▇█▓▒░
Это весь плейбук.
У тебя мак? Какой интеприьатор используешь?
Vladislav 👻
Где указан интерпретатор для локала?
Oleg
head -1 $(which ansible) #!/usr/bin/python3
Vladislav 👻
Вангую, попадает во второй
Vladislav 👻
Не надо путать место запуска и обработку
Oleg
Так запускается на localhost
Oleg
[local] localhost ansible_python_interpreter=/usr/bin/python3
Oleg
это инвентори
Oleg
Об этом вопрос был?
Oleg
К тому же: pip show boto3 Name: boto3 Version: 1.14.51 Summary: The AWS SDK for Python Home-page: https://github.com/boto/boto3 Author: Amazon Web Services Author-email: UNKNOWN License: Apache License 2.0 Location: /usr/local/lib/python2.7/dist-packages Requires: botocore, jmespath, s3transfer
Oleg
Под python2 этот модуль тоже установлен
Vladislav 👻
Значит что-то не так, сделай в дебаге вывод интерпретатора
Grek 🇺🇦
под кем запускается плейбук, и для какого пользователя установлен модуль?
Grek 🇺🇦
нет ли там какого-то become?
Oleg
Устанавливал глобально из под рута: pip3 install boto3
Grek 🇺🇦
запустите плоейбук от рута, проверьте
Grek 🇺🇦
я думаю что для юзера под которым раните плейбук нет этого модуля
Vladislav 👻
Рутовые доступны всем
Oleg
Нашел. Всем спасибо. Видать ранее локально для рута кто-то устанавливал 'jmespath' от которого зависит boto3.
Oleg
Через ансибл не видно. Написал тестовый .py с одной строкой: import boto3
Oleg
и тогда увидел что не находит этого модуля.
Alex
а можно ли записать when: - ha_node_type is not defined or ha_node_type == 'master' в более короткой форме, что то типа when: - ha_node_type in ['undefined', 'master']?
i4l
Не обязательно, но именно про изолированные среды внутри которых отдельный инстанс
Отделение Bereke Bank
Кто нибудь юзает ссанную роль https://github.com/nginxinc/ansible-role-nginx ? не могу фильтрами вытащить из nginx_http_template все значения server_name. пробовал так nginx_http_template.values() | json_query('[*].servers[*].server_name') - пустой рез-т. Может кто делал?
Отделение Bereke Bank
Пример переменной там же https://github.com/nginxinc/ansible-role-nginx/blob/0.14.0/molecule/common/playbook_template.yml#L45
Andrei
Господа, извините, что не по теме, но может кто знает каналы, где обсуждают YANG data modelling, netconf/restconf, confd ? В первую очередь интересует YANG
Отделение Bereke Bank
- debug: msg: "{{ nginx_http_template | json_query('*.servers.*.server_name') }}"
спасибо 👍 значит можно было и без [] 😐
Aleksandr
хотя есть разночтения, на сайте проверка работает вот так *.servers[].*.server_name
Aleksandr
на ансибле в любом из вариантов будет работать
Отделение Bereke Bank
в итоге получается list list-ов. ну хоть что-то) спасибо еще раз
Отделение Bereke Bank
во збс. всратый синтаксис...
user
Приветствую, а напомните какой синтаксис для запуска плэйбука для одной машины?
user
-l имя_машины_из_инвентори
Ага, спасибо большое