DjinN
Возможно у вас какая-то креативная последовательность
я просто ставлю - docker-ce - python-docker - python-pip и хочу создать вольюм, первый раз выдает ошибку, второй раз все ок, %)
Aleksandr
Логи в студию, вот это вот всё.
ты не честно играешь. а как же гадания по times new roman на белом фоне?)
DjinN
Я думал вы профессионалы, а вам логи какие-то надо
Sergey
Я думал вы профессионалы, а вам логи какие-то надо
Первое предупреждение за неуместный троллинг. Второго не будет, сразу RO На сутки.
Alexey
я просто ставлю - docker-ce - python-docker - python-pip и хочу создать вольюм, первый раз выдает ошибку, второй раз все ок, %)
Похоже на шутки с 3м питоном, встречал такое плавающее... В явном виде указывал использовать 3й и ставил python3-pip, потом уже pip install docker.
[IPT] Dmitry
- name: create weblogic partition lvol: vg: vg_{{ inventory_hostname_short }}_weblogic lv: lv_{{ inventory_hostname_short }}_weblogic size: 100%FREE fatal: [server]: FAILED! => changed=false msg: Sorry, no shrinking of lv_server_weblogic to 0 permitted. https://github.com/ansible/ansible/issues/29201 кто как это костыляет? 🤔
[IPT] Dmitry
Так там воркэраунд в комментах есть
да, уже дочитался и проверил. пашет
Div
в общем да, спасибо. решил не выебываться, снес питон и ансибл homebrew и поставил все pip'ом, так заработало.
никогда не работал за маком, но для линуксового virtualenv есть ключ, позволяющий использовать пакеты установленные в системе --system-site-packages.
Div
а разве смысл виртуаленва не в изоляции пакетов?
смысл. но если нужно то можно и разрешить.
Alexandr
Привет! помогите отдебажить пожалуйста следующую ситуацию: Обновил на маке через brew питон и ансибл: ansible 2.9.2 config file = /Users/xxx/.ansible.cfg configured module search path = ['/Users/xxx/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/local/Cellar/ansible/2.9.2_1/libexec/lib/python3.8/site-packages/ansible executable location = /usr/local/bin/ansible python version = 3.8.1 (default, Dec 27 2019, 18:06:00) [Clang 11.0.0 (clang-1100.0.33.16)] --- $ python3 --version Python 3.8.1 --- $ pip3 show pyvmomi Name: pyvmomi Version: 6.7.3 Summary: VMware vSphere Python SDK Home-page: https://github.com/vmware/pyvmomi Author: VMware, Inc. Author-email: jhu@vmware.com License: License :: OSI Approved :: Apache Software License Location: /usr/local/lib/python3.8/site-packages проблема в том что когда запускаешь ансибл, он не находит пакет pyvmomi. Если делать импорт вручную того что делает ансибл в библиотеке - все работает. Подозреваю что проблема в линковке, но не могу понять где он ищет и не находит. Спасибо за советы!
под маком кошерно так https://medium.com/python-every-day/python-development-on-macos-with-pyenv-2509c694a808
Aleksandr
под маком кошерно так https://medium.com/python-every-day/python-development-on-macos-with-pyenv-2509c694a808
мне по сути девелопмент абсолютно не нужен, поэтому версия питона не принципиальна. За совест спасибо, буду иметь ввиду
Maksim
Подскажите плиз, почему опять не отрабатывает handler
Maksim
в одной роли tasks/main.yml - name: template vc-apps.conf template: src: vc-apps.conf.j2 dest: /etc/nginx/conf.d/default.conf notify: nginx done handlers/main.yml - name: nginx done service: name: nginx state: restarted enabled: yes
Maksim
ой
Maksim
Я так понимаю, если статус ok , то и не должен?
Aleksandr
в одной роли tasks/main.yml - name: template vc-apps.conf template: src: vc-apps.conf.j2 dest: /etc/nginx/conf.d/default.conf notify: nginx done handlers/main.yml - name: nginx done service: name: nginx state: restarted enabled: yes
переименуй handler в restart nginx, ибо когда другой человек будет читать твой код, по названию вообще не понятно что будет делать хендлер.
Womchik
hi! Вот у меня есть переменная service: env: user: pass {{ service[‘env’] }} даёт мне user: pass {{ service[‘env’][‘user’] }} даёт мне pass а как мне user вытащить? без цикла
CMy3u🐈
service[‘env’].keys() так попробуй
Aleksandr
{{ service[‘env’].keys[0] }} либо {{ service[‘env’].keys()[0] }} не помню без доки нужно ли ансиблу указывать что .keys это функция или нет
Aleksandr
но если service['env'] будет пустым, то будет ошибка, что нет 0 элемента у пустого массива
Womchik
просто keys() выдаёт dict_keys([‘user’])
Sergey
service[‘env’].keys()[0]
Womchik
нет
Sergey
нет
Ну тогда страдай. Или можешь сказать, как первоначальная задача выглядела.
Womchik
Так и выглядела
IZubrag
| default(omit) мне помогает
Sergey
Так и выглядела
ещё можно использовать фильтр lookup
Womchik
Фильтр dict2items
ну так я по first могу получить, но мне кажется, что это неправильно
Lev
hi! Вот у меня есть переменная service: env: user: pass {{ service[‘env’] }} даёт мне user: pass {{ service[‘env’][‘user’] }} даёт мне pass а как мне user вытащить? без цикла
ты можешь свой фильтр накидать типа такого class FilterModule(object): def filters(self): return { 'user_names': self.a_user_names } def a_user_names(self, users_input): return users_input['service']['env'].keys()
Lev
🙂
тебе надо выгрести все ключи в определенном энве? или как?
Kirill
Коллеги есть вопрос есть список например сетевых интерфейсов как правильно совместить с фактами например лист [lo ens192] хочу получить ansible_facts['item']
Kirill
но в лоб не работает
Lev
имя первого (единственного) ключа
а такое: {{ service['service'].['env']keys()[0] }}
Womchik
а такое: {{ service['service'].['env']keys()[0] }}
The error was: dict_keys object has no element 0 пробовал. выше
Lamobot
The error was: dict_keys object has no element 0 пробовал. выше
'{{ (service["env"]|dict2items|first)["key"] }}'
Womchik
'{{ (service["env"]|dict2items|first)["key"] }}'
{{ service[“env”] | first }} уже правильно работает
Lev
The error was: dict_keys object has no element 0 пробовал. выше
--- - hosts: localhost vars: service: env: user: pass tasks: - debug: msg: "{{ service['env'].keys()[0] }}" # ansible-playbook 1.yml PLAY [localhost] ********************************************************************************************************************** TASK [Gathering Facts] **************************************************************************************************************** ok: [localhost] TASK [debug] ************************************************************************************************************************** ok: [localhost] => { "msg": "user" } PLAY RECAP **************************************************************************************************************************** localhost : ok=2 changed=0 unreachable=0 failed=0
Lev
сейчас ещё попробую
у меня точная такая же 16 этажка и не горит(с) старый советский анекдот про погромистов
Womchik
у меня точная такая же 16 этажка и не горит(с) старый советский анекдот про погромистов
ansible-playbook 2.9.1 1.yml взял копипастой ansible-playbook -i localhost, 1.yml graylog_api PLAY [localhost] ************************************************************************************** Monday 13 January 2020 17:06:27 +0300 (0:00:00.027) 0:00:00.027 ******** TASK [Gathering Facts] ******************************************************************************** ok: [localhost] Monday 13 January 2020 17:06:32 +0300 (0:00:04.962) 0:00:04.990 ******** TASK [debug] ****************************************************************************************** fatal: [localhost]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: dict_keys object has no element 0\n\nThe error appears to be in '/Users/wom/wellmax/ansible/newpb/1.yml': line 7, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n tasks:\n - debug:\n ^ here\n”}
Aleksandr
Подскажите пожалуйста, как вытащить id (3)из переменной zookeeper_id_3, которая в списке? "hostvars[inventory_hostname].group_names": [ "3-3", "poweredOn", "ubuntu64Guest", "zookeeper", "zookeeper-broker", "zookeeper_id_3" ]
Никита
hostvars[inventory_hostname].group_names[-1:] кажется так
Aleksandr
а если сортировка поменяется?)
Никита
последнее значение получит
Lamobot
Подскажите пожалуйста, как вытащить id (3)из переменной zookeeper_id_3, которая в списке? "hostvars[inventory_hostname].group_names": [ "3-3", "poweredOn", "ubuntu64Guest", "zookeeper", "zookeeper-broker", "zookeeper_id_3" ]
Чтобы из zookeeper_id_3 вытащить 3, можно применить фильтры split,replace,regex_replace какой больше нравится. Но сам по себе подход неверный, так как могут измениться группы, в которых находится host
Lamobot
Лучше задавать zookeeper_id или же название группы отдельной переменной в плейбуке
Aleksandr
я не могу к сожалению оперировать переменной в плейбуке. Сейчас я навешиваю на виртуалки теги, а затем динамическим инвентарем собираю эту информацию. Тег с виртуалки никогда и никуда не уедет пока она жива, поэтому гарантировано что в инвентаре всегда будут группы zookeeper, zookeeper_id_x
Aleksandr
если бы был не список, можно было бы просто так сделать: | regex_findall('zookeeper_id_([0-9]+)')
Aleksandr
а со списком у меня ступор)))
Никита
https://www.tailored.cloud/devops/how-to-filter-and-map-lists-in-ansible/
Aleksandr
https://www.tailored.cloud/devops/how-to-filter-and-map-lists-in-ansible/
hostvars[inventory_hostname].group_names | select('match','zookeeper_id_([0-9]+)') | join | regex_findall('zookeeper_id_([0-9]+)') спс, то что нужно
Aleksandr
точнее криво, но работает)
Igor
Есть массив app_cmd: - arg1 - arg2 подскажите, как добавить к ним префикс сюда - {{ app_cmd | join(' ') }}
Aleksandr
Полуночный вопрос, господа) как в jinja имея переменную int count=N нарисовать строку bla1:123,bla2:123, ... , blaN:123 ?)
Sergey
Циклом for?
Aleksandr
да, это было сложно... сорян зя тупняк. только один момент, как последнюю запятую не ставить?
Aleksandr
zookeeper.connect= {% set zookeeper_servers_list = zookeeper_address.split(',') %} {% set servers_count = zookeeper_servers_list | length %} {% for server in range(servers_count) %} {{ server }}:2181, {% endfor %}
Sergey
zookeeper.connect= {% set zookeeper_servers_list = zookeeper_address.split(',') %} {% set servers_count = zookeeper_servers_list | length %} {% for server in range(servers_count) %} {{ server }}:2181, {% endfor %}
У меня статья есть на хабре про Ансибл, я в таком списке не ставил запятую в 2015 😁 там в комментах
Aleksandr
вот я щас конечно твою статью от 2015 года про ансибл сходу найду))
Sergey
Она не теоялась
Aleksandr
https://m.habr.com/ru/post/266481/
нашел, все получилось как надо, спасибо!
Aleksandr
Она не теоялась
думаю ты должен понимать что сколь не был бы известен человек и его материалы, найдутся люди которые про него ничего не знают. Ты же вот не знаешь что у меня есть статья на том же самом хабре про докер на 250к просмотров? так что не уверен что это замечание уместно. А за помощь большое спасибо
Womchik
и .keys() тут не обязательно
Lev
first я сразу сделал; но мне кажется это некрасивым
тогда вопрос ребром. откуда и почему в таком формате приезжает стрктура данных? можно ли поменять формат?