Ilya
Гайз, может кто подскажет. Пытаюсь настроить ldap dynamic inventory в awx, но встаёт проблема что не парсит job для синхронизации. Сам скрипт работает если через ansible запустить, а как заставить работать в awx, не получается.
Скрипт https://github.com/joshinryz/ansible_ldap_inventory
Ilya
Лог https://pastebin.com/AuT8uZVy
Ilya
Как пробовал запустить:
1. В inventory scripts скопипастил python script
2. Создал inventory, создал source, в нем выбрал custom inventory script, указал соответствующие variables
Petr
Доброго дня!
Можно ли каким-то хитрым способом передавать переменную в границы списка?
Задача: Передать число хостов, на которые выкатить релиз
hosts: "{{ (groups['web_servers'])[0:15]}}"
Но не могу вместо 15 указать переменную
Ilya
Serg
Petr
ругаицца
ansible-playbook -i list_test_hosts test.yml -e number=100
ERROR! Unexpected templating type error occurred on ({{ (groups['all'])[:number]}}): slice indices must be integers or None or have an __index__ method
Lamobot
Ilya
Другим способом еще настроил и даже работает ldap dynamic inventory.
1. В контейнер awx_task, в папку модулей запихнул скрипт, включил плагин в ansible.cfg
2. В awx, создал inventory, в source указал from project, на проект где лежит чисто один ldap_inventory.yml.
Такой способ работает, но если запустить job template, то по цепочке пытается запустить проект с ldap_inventory.yml и уходит в бутлуп. https://pastebin.com/pCv0hrq2
Sergei
братишки, ни у кого плугина не завалялось для работы с minio?
Lamobot
Sergei
aws_s3 не работает?
не покрывает функционал минио, или не туда смотрю. Нужно добавлять юзера с кастомными полиси и кредами
Ilya
Denis
Всем привет. Пишу модуль. В него передаю параметром имя файла который должен лежать в files в роли. Модуль получает это имя, но не путь. Вопрос: как правильно получать путь до файла. Например в модуле copy src может быть файлом который лежит в files, но покопавшись в исходниках (https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/files/copy.py#L522) не нашел никаких преобразований и подстановок
Anton
Denis
Да, но в copy например как-то реализовано что он сам находит без подстановки
Alexander
Подскажите, можно как-то передавать хостнейм параметрами при запуске?
Alex
Nik
Всем привет, есть такой вопрос:
есть настроеный сервер awx, с которого запускаются плейбуки и все ок.
Есть хосты, которые создаются на стороне.
Есть задача применять к этим хостам плейбук, не зная его ip. То есть можно ли как-то сообщить awx со стороны целевой машины, что на ней нужно выполнить какой-то плейбук или хотя бы добавить этот хост в инвентори со стороны целевого хоста
Nik
что-то типа webhook
Alexander
ansible_hostname?
В документации нашел ansible_host, но не пойму как передать его аргументом
Div
Павел
Full
Nik
Nik
Павел
Div
расти большой, не будь лапшой.
TAB
Коллеги, добрый день!
Помогите пожалуйста с таким вопросом:
делаю запрос через модуль uri к gitlab - есть ли такая-то ветка
ответ сохраняю в переменную branch_exist
Теперь мне из ответа нужно достать собственно статус.
У меня пока очень туго идет понимание как получать нужное мне значение в сложных структурах
Пробую так:
- name: show status in branch_exist.results
debug:
msg: "{{ item.status }}"
loop: "{{ branch_exist.results }}"
В ответе получаю
TASK [gitlab : show status in branch_exist.results] *****************************************************************************************************************************************************************************************
Wednesday 29 April 2020 14:44:01 +0300 (0:00:00.217) 0:00:01.660 *******
ok: [localhost] => (item={'redirected': False, 'url': 'https://gitlab.***.ru/api/v4/projects/78/repository/branch=ccng-***', 'status': 404, 'connection': 'close', 'content_length': '25', 'date': 'Wed, 29 Apr 2020 11:44:01 GMT', 'content_type': 'application/json', 'server': 'nginx', 'cache_control': 'no-cache', 'vary': 'Origin', 'x_request_id': 'Y8gNDXoQRf9', 'x_runtime': '0.006217', 'msg': 'HTTP Error 404: Not Found', 'elapsed': 0, 'changed': False, 'json': {'error': '404 Not Found'}, 'invocation': {'module_args': {'url': 'https://gitlab.***.ru/api/v4/projects/78/repository/branch=ccng-***', 'validate_certs': False, 'method': 'GET', 'status_code': ['200', '201', '400', '404'], 'headers': {'PRIVATE-TOKEN': '***'}, 'force': False, 'http_agent': 'ansible-httpget', 'use_proxy': True, 'force_basic_auth': False, 'body_format': 'raw', 'return_content': False, 'follow_redirects': 'safe', 'timeout': 30, 'follow': False, 'url_username': None, 'url_password': None, 'client_cert': None, 'client_key': None, 'dest': None, 'body': None, 'src': None, 'creates': None, 'removes': None, 'unix_socket': None, 'mode': None, 'owner': None, 'group': None, 'seuser': None, 'serole': None, 'selevel': None, 'setype': None, 'attributes': None, 'content': None, 'backup': None, 'remote_src': None, 'regexp': None, 'delimiter': None, 'directory_mode': None, 'unsafe_writes': None}}, 'failed': False, 'item': '78', 'ansible_loop_var': 'item'}) => {
"msg": "404"
}
Вопрос №1: что нужно почитать, кому помолиться или какой танец танцевать, чтобы наконец досконально понять, как обращаться с данными
Вопрос №2: как мне из ответа получить только значение status?
Alexander
@Lex_hha
Alexander
До этого я мучался без запятых
TAB
Свой второй вопрос решил через from_json.
Первый все равно мучает
Alex
Alex
а то нефига не понятно
TAB
https://xpaste.pro/p/rJ0jDLQn
TAB
вот, пожалуйста
TAB
сейчас я получаю
ok: [localhost] => (item=404) => {
"msg": 404
}
TAB
что меня устраивает
TAB
теперь я могу when. Но все равно у меня каша в голове о том, как вытаскивать данные из переменных
TAB
или вот был случай когда в переменной данные имели yaml:
-
key1: value
key2: value
-
key1: value
key2: value
я так и непонял, как мне вытащить значение key2
TAB
наверное я кривой, но из документации как то туго понимается
TAB
вот сделал закладку в FF:
location: https://docs.ansible.com/ansible/latest/index.html#stq=%s&stp=1
keyword: as
TAB
с ее помощью можно в адресной строке набирать as "что найти" и попадать на сайт документации с готовым поиском
TAB
может кому из начинающих пригодится)
Anton
Ребят, подскажите, насколько ansible-vault безопасен? Гуглил фастом но ничего про безопасность не нашел, однако в прошлом читал статейку и говорили, что ansible-vault не стоит доверять... Естественно, если пароль 123, то да. Но если надёжный пасс?
Anton
взламывается абсолютно все вопрос цены и времени
Lev
Anton
Можно разделить секрет доступа хоть на тысячу человек с минимальным кворумом в 999
Anton
Я не про тупой брут, с этим ок
Sergey
Anton
Sergey
Anton
Общий gitlab
Full
О сколько нам открытий чудных...
В модуле vmware_guest_tools_wait таймаут ожидания захардкожен. Горит с этого.
Извините...
Anton
Очень туманно. Общий = gitlab.com?
Нет, в компании, но доступ будет у нескольких людей. Просто хотел узнать если надёжным паролем зашифровать, насколько будет безопасно.
inqfen
Anton
inqfen
Full
Выглядит как повод для пуллреквеста
Ох. Да там перефигачить половину модулей для vmware нужно, по-хорошему.
C другой стороны, нужно когда-то начинать.
Я вот только задумываюсь, фичрекветы писать, или пулреквесты. :)
Full
def wait_for_tools(self, vm, poll=100, sleep=5)
Ну, ё-моё.
Sergey
Full
Ну ок, формально - не хардкод, согласен.
Но управления этими переменными снаружи все равно нет.
Sergey
Full
640 Кб достаточно кажому. :)
Там, пожалуй, разумное умолчание - 500 сек. Но мне вот не хватает, например.
ЕМНИП где-то натыкался, что раньше там был таймаут.
Full
Там - в смысле в модуле.
Anonymous
Anonymous
timeout:
description:
- Max duration of the waiting period (seconds).
default: 500
type: int
Anonymous
папочка(ansible\lib\ansible\modules\) в https://github.com/ansible/ansible резко похудела
Full
О, спасибо.
Anonymous
ветка devel(https://github.com/ansible/ansible), если быть точнее
Anonymous
в 2.9 только bugfix на сколько мне известно