Max
линк на пригореть (с)
bebebe
а есть линк на почитать?
https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_2.7.html#using-a-loop-on-a-package-module-via-squash-actions
Aleksey
там такое вот
Max
ебать...
Max
простите
Max
то есть они сделали отдельный with_items для пакетов, гениально
Aleksey
пригорает от этого просто нереально.
Max
я прям вижу как я побежал перепиливать все плейбуки...
Max
пиздец
Max
а чего пиздатого то ?
bebebe
я прям вижу как я побежал перепиливать все плейбуки...
дайте угадаю Максим, вы не запускаете ansible в докер контейнере?
Max
при чем тут это?
Vadim
а чего пиздатого то ?
Если не знаете как работает yum - то вот просветитесь, например
bebebe
так, к слову пришлось, так запускаете или нет?
Aleksey
шикарно тем у кого плейбук по факту один. вот у меня один и у вадима один. и мигрировать его это ну день работы.
Aleksey
а всем остальным у кого плейбуков ~200 им ппц да
Max
в правом нет, в правом проект маленький, с мака запускаю
𝚔𝚟𝚊𝚙𝚜
а зачем мигрировать? - работает и ладно
Max
я так понял они выпилят with_items
Aleksey
а зачем мигрировать? - работает и ладно
можно не мигрировать. можно в тотм момент когда понадобится убить неделю на понимание чо почему
𝚔𝚟𝚊𝚙𝚜
они не выпилят, это не механизм модуля
Aleksey
ибо понадится ппц не скоро. и рук на это запланиовано не будет
Vadim
а всем остальным у кого плейбуков ~200 им ппц да
Мы ручками собирали with_items в список с запятыми
Max
в правом
так при чем тут докер то?
Vadim
Наконец-то можно убрать, отлично же
Max
докер каким-то волшебным образом позволит новому ансиблу запускать несовместимые плейбуки?
Aleksey
Мы ручками собирали with_items в список с запятыми
ну так написано что можно уже с 2,5
Aleksey
более ранний не проверял
bebebe
я об этом не раз писал, и меня видимо не понимали, это как раз тот случай, когда вы работу деливерите не плейбуком, а докер окружением с ready to go
bebebe
я даже не замечаю тольком этих обновлений и breaking change, артефакты задилеверины в <docker_image>-playbook-env4:tag где запинены версии
cent
https://github.com/ansible/ansible/issues/44564 - какую версию pyapi-gitlab используете?
Aleksey
в 2,5 написано что When used with a loop: each package will be processed individually, it is much more efficient to pass the list directly to the name option.
Max
Спасибо!
Vadim
в 2,5 написано что When used with a loop: each package will be processed individually, it is much more efficient to pass the list directly to the name option.
Вот именно, вместо переписывания на loop мы делали тупо список для всех версий
Aleksey
но это ложь
Aleksey
я видел итоговую конмаду она не была вызовом 100500 раз apt
Aleksey
она была сжоиненой
bebebe
https://github.com/ansible/ansible/issues/44564 - какую версию pyapi-gitlab используете?
у меня была немного другая бага с проверкой существвания проекта на один определенный проект из 30, gitlab постоянно возвращал "проект не существует", хотя он был, и обламывался при создании...
Huan
привет всем, подскажите как заюзать переменную item.name из зарегистрированных фактов в данном примере? { 'msg': u 'All items completed', 'changed': False, 'results': [{ '_ansible_parsed': True, u 'subnet': { u 'assign_ipv6_address_on_creation': False, u 'availability_zone': u 'eu-central-1a', u 'ipv6_association_id': u '', u 'ipv6_cidr_block': u '', u 'default_for_az': False, u 'state': u 'available', u 'ipv6_cidr_block_association_set': [], u 'vpc_id': u 'vpc-XXX', u 'cidr_block': u '10.0.0.0/18', u 'available_ip_address_count': 16379, u 'id': u 'subnet-XXX', u 'tags': { u 'Name': u 'subnet-a' }, u 'map_public_ip_on_launch': False }, u 'changed': False, '_ansible_no_log': False, '_ansible_delegated_vars': { 'ansible_delegated_host': u 'localhost', 'ansible_host': u 'localhost' }, '_ansible_item_result': True, 'failed': False, 'item': { u 'cidr': u '10.0.0.0/18', u 'az': u 'eu-central-1a', u 'name': u 'subnet-a' }, ..... ..... ..... }]
Huan
results['item']['name'] не работает(
Max
{{ item.name }} ?
Max
или я не понял вопроса
Max
а, понял...
𝚔𝚟𝚊𝚙𝚜
они не выпилят, это не механизм модуля
похоже что все таки механизм модуля, только что - hosts: localhost tasks: - apt: name: "{{ item }}" with_items: - sysstat - bcпри выполнении дает TASK [apt] ********************************** ok: [localhost] => (item=[u'sysstat', u'bc'])
Huan
{{ item.name }} ?
да, но вот я пробовал зарегать факт register: ec2_subnet потом пытаюсь вывести имя переменной - debug: msg="{{ ec2_subnet.results['item']['name'] }}" и не работает
𝚔𝚟𝚊𝚙𝚜
но это же логично что в этом случае apt должен вызываться два раза, для каждого item
bebebe
привет всем, подскажите как заюзать переменную item.name из зарегистрированных фактов в данном примере? { 'msg': u 'All items completed', 'changed': False, 'results': [{ '_ansible_parsed': True, u 'subnet': { u 'assign_ipv6_address_on_creation': False, u 'availability_zone': u 'eu-central-1a', u 'ipv6_association_id': u '', u 'ipv6_cidr_block': u '', u 'default_for_az': False, u 'state': u 'available', u 'ipv6_cidr_block_association_set': [], u 'vpc_id': u 'vpc-XXX', u 'cidr_block': u '10.0.0.0/18', u 'available_ip_address_count': 16379, u 'id': u 'subnet-XXX', u 'tags': { u 'Name': u 'subnet-a' }, u 'map_public_ip_on_launch': False }, u 'changed': False, '_ansible_no_log': False, '_ansible_delegated_vars': { 'ansible_delegated_host': u 'localhost', 'ansible_host': u 'localhost' }, '_ansible_item_result': True, 'failed': False, 'item': { u 'cidr': u '10.0.0.0/18', u 'az': u 'eu-central-1a', u 'name': u 'subnet-a' }, ..... ..... ..... }]
из вывода не видно. в какой переменной вы регистрируете результат?
cent
да, есть такое
А можешь поделиться готовой конфой для использования ansible+pyapi-gitlab ? ansible —version pip list |grep pyapi-gitlab pip —version А то у меня уже 300 раз пересобираю этот контейнер для ansible и все равно ни хрена не работает....
Aleksey
а зачем оно ? выглядит слегка outdated
bebebe
видно - ec2_subnet
да, увидел вы ниже написали. попробуйте так: ec2_subnet.results[0]['item']['name']
cent
$ ansible --version ansible 2.4.3.0 pip3 --version pip 9.0.1 pip3 show pyapi-gitlab Name: pyapi-gitlab Version: 7.8.5
Все равно ошибку выдает An exception occurred during task execution. To see the full traceback, use -vvv. The error was: TypeError: getusers() got an unexpected keyword argument 'search'
bebebe
мне кажется это еще может зависеть от версии гитлаба...
cent
мне кажется это еще может зависеть от версии гитлаба...
Точно) Почему мне это раньше в голову не пришло?)
bebebe
Точно) Почему мне это раньше в голову не пришло?)
у меня довольно не свежий gitlab_version: 10.4.1-ce.0
cent
у меня довольно не свежий gitlab_version: 10.4.1-ce.0
Да, а я на свою голову самый свежий поставил и уже отгреб кучу проблем. Вот теперь еще и с api отгребаю
Aleksey
дак в 11-ом версию 3 api грохнули
Aleksey
теперь минималка 4-ая версия. поэтому я и говорю от проекта попахивает...
cent
дак в 11-ом версию 3 api грохнули
В смысле? А как теперь управлять?
Aleksey
перписать на 4-ую версию ?
Aleksey
минимальная версия api
cent
перписать на 4-ую версию ?
Т.е. pyapi-gitlab даже unstable еще нет?
Aleksey
https://docs.gitlab.com/ce/api/v3_to_v4.html
Aleksey
https://about.gitlab.com/2018/06/22/gitlab-11-0-released/#gitlab-api-v3
Aleksey
GitLab API v3 API v4 has been the preferred version of the GitLab API since 9.0. With GitLab 11.0, API v3 is removed and no longer supported. See the differences between API v3 and v4. Removal date: June 22, 2018
cent
Я понял. Спасибо. Завтра буду разбираться с даунгрейдом...
Huan
да, увидел вы ниже написали. попробуйте так: ec2_subnet.results[0]['item']['name']
так работает, спасибо! а если нужно вывести каждое имя subnet, если их несколько?
Huan
{% for v in ec2_vpc_subnet.results %}{{ v.item.name }}{% endfor %} получилось, спасибо