UglyKoyote
"{{app_type}}_installer_type" - емнип
Alex
так мне надо получить значение
UglyKoyote
ну тогда жинжа в руки (в качестве костыля сойдет) - но костыли это плохо) не слушай меня
Nikita
А не подскажите почему могут исключения игнорироваться: - name: Use gzip to compress a single archive (i.e don't archive it first with tar) archive: path: "{{ lookup('env','CI_PROJECT_DIR') }}" dest: "/tmp/{{ build_id }}.zip" format: zip exclude_path: "{{ search_result.files | map(attribute='path') | list }}" ?
UglyKoyote
о, значит есть там стуки
куда пропал то :) помогло не?
kevit
@UglyKoyote спасибо, помогло
kevit
но в целом конечно как-то брутально перезапускать systemd чтоб заработало
kevit
спасибо еще раз, все пытался понять чего оно барахлит)
Nikita
Результат из find
Alex
а конкртенее
Nikita
К примеру так - /builds/web/project/project/.gitlab-ci.yml - /builds/web/project/project/.gitignore - /builds/web/project/project/.git - /builds/web/project/project/_CI
UglyKoyote
но в целом конечно как-то брутально перезапускать systemd чтоб заработало
ну почему, ты же когда руками правишь юнит файлы - система тебе так же пишет - мол перезагрузи) не даст скорее всего рестартовать сервис
kevit
@UglyKoyote daemon_reload это
kevit
перечитывает конфиги из /etc/systemd
kevit
а то что ты прислал перегружает systemd, там что-то с сериализацией, оно перестраивает дерево зависимостей как я понял, чего не происходит при daemon_reload
kevit
но надо подчитать что именно ансибл там делает
UglyKoyote
я не помню причины, но мне демон релоад почему то не помогал, может это на бубунте был
tutunak
2.8.5
может эта бага аффетит, хотя там про директории https://github.com/ansible/ansible/issues/58731
Alex
К примеру так - /builds/web/project/project/.gitlab-ci.yml - /builds/web/project/project/.gitignore - /builds/web/project/project/.git - /builds/web/project/project/_CI
насколько я помню, путь к файлу должен быть такой же, который показывает unzip -l test.zip. Попробуй убрать слеш вначале пути - builds/web/project/project/.gitlab-ci.yml - builds/web/project/project/.gitignore - builds/web/project/project/.git - builds/web/project/project/_CI
𝚔𝚟𝚊𝚙𝚜
Всем привет, а Ansbile умеет JSON Merge Patch?
Ruslan
доборый вечер
Ruslan
подскажите пожалуйста как вывести переменную groups['group1'] в jinja шаблоне колонкой? {{ groups['group1'] }} результат: host1, host2 а хотелось бы: host1 host2
Ruslan
да, я первое о чем подумал это цикл, но хотелось избежать сложных конструкций в шаблоне
Ruslan
{{ groups['group'] | join('\n') }} подошло
George
@kvaps, нет, но он умеет мержить словари из переменных если есть такая опция в конфиге ансибла.
Sergey
Всем привет, а Ansbile умеет JSON Merge Patch?
Тебе нужно _некоторые_ ключи перекрыть?
Гайрат
notify чего?
notify: systemd reload handlers/main.yml: - name: systemd reload: systemd: ...
kevit
а что под systemd написано?
kevit
там выше был мой код
kevit
- name: "Start and enable services" become: true systemd: name: "{{ item }}" enabled: true daemon_reload: true
kevit
daemon_reload там отрабатывает трижды
𝚔𝚟𝚊𝚙𝚜
Тебе нужно _некоторые_ ключи перекрыть?
В смысле? Вот у меня есть структура: aaa: bbb: ccc: string fff: something ddd: eee: - fff - ggg Как мне string изменить на another_string?
𝚔𝚟𝚊𝚙𝚜
в jsonnet'е я могбы сделать просто: std.mergePatch( var, { aaa: { bbb: { ccc: 'another_string' } } } )как реализовать что-то подобное в ansible?
Artem
в jsonnet'е я могбы сделать просто: std.mergePatch( var, { aaa: { bbb: { ccc: 'another_string' } } } )как реализовать что-то подобное в ansible?
Это есть параметр в ansible.cfg. Не помню как называется, что то типо var_strategy=merge. Если встретит два одинаковых параметра то он их помержит смотря на приоритет объявления
𝚔𝚟𝚊𝚙𝚜
https://docs.ansible.com/ansible/2.3/intro_configuration.html#hash-behaviour
Спасибо, интересная опция, но она гобальная и говорят её задепрекейтят в 2.10 https://www.reddit.com/r/ansible/comments/dhsavl/hash_behaviour_deprecated_for_the_210_release/
𝚔𝚟𝚊𝚙𝚜
а вот combine это похоже именно то что мне и было нужно
Sebor▂▅▇█▓▒░
Кто сталкивался с таким поведением: есть 2 сервера с gitlab-runner, но на одном ansible установлен через deb-пакеты, а на втором - через pip. Так вот, тот ансибл, что через pip вызывается в CI, не хочет читать переменные окружения для своего конфига Пример .gitlab-ci.yml: stages: - build - deploy variables: ANSIBLE_HOST_KEY_CHECKING: 'False' ANSIBLE_LOCALHOST_WARNING: 'False'
GithubReleases
ansible/ansible tagged: v2.7.15 Link: https://github.com/ansible/ansible/releases/tag/v2.7.15 Release notes: New release v2.7.15
GithubReleases
ansible/ansible tagged: v2.8.7 Link: https://github.com/ansible/ansible/releases/tag/v2.8.7 Release notes: New release v2.8.7
GithubReleases
ansible/ansible tagged: v2.9.1 Link: https://github.com/ansible/ansible/releases/tag/v2.9.1 Release notes: New release v2.9.1
Timur
А операционка на раннеры под какой осью?
Timur
И какой тип раннеров? shell? Docker? Docker-machine?
Sebor▂▅▇█▓▒░
Gleb
Все раннеры shell
ну поделай раннерами команды типа env и прочее, что с окружением и все остальное
kevit
@sebor запусти вот такое - name: Print env vars: msg: | {{ environment | to_nice_json }} debug: msg: "{{ msg.split('\n') }}"
SABeShnik
Коллеги, всем доброго дня! Подскажите плиз один момент. Ansible на RHEL 7.7. Клиенты на Win Server 2016. При выполнении win_ping на части машин ошибка: "changed": false, "msg": "plaintext: HTTPConnectionPool(host='10.89.64.114', port=5985): Max retries exceeded with url: /wsman (Caused by ConnectTimeoutError(<requests.packages.urllib3.connection.HTTPConnection object at 0x7f117943bc90>, 'Connection to 10.89.64.114 timed out. (connect timeout=30)'))", "unreachable": true В чем может быть дело?
SABeShnik
SABeShnik
Или права юзера, или фаерволл, или не включен winrm нормально
Спасибо за ответ. Firewall отключили; Юзер права имеет аналогичные как на других рабоающих машинах; А что значит включен неправильно?
Timur
В документации довольно детально описано, как должен быть настроен хост
Timur
https://docs.ansible.com/ansible/latest/user_guide/windows_setup.html
UglyKoyote
Народ, а поскажите, почему конструкция {% for host in groups['ххх'] %} "{{ hostvars[host]['ansible_hostname'] }}"{%- if not loop.last %},{% endif %} {% endfor %} в одну строчку может "вытягивать" переменные, а не построчно клепает? (ansible 2.8.5)
SABeShnik
listeners, сервисы, сертификаты, тип авторизации и т.п.
5985 - поэтолму без сертификатов Basic - пароль и голин передается 5985 - слушается Спасибо за ссылку, почитаем
Nikolay
привет. Как проще в ансибле можно выдать след ip и сетки, но исключив адреса из списка exclude_ips? - name: get free ip vars: exclude_ips = [’192.168.122.2’, ’192.168.122.3’] set_fact: ipaddr: “{{ '192.168.122.1/24' | ipaddr('next_usable') }}” # return 192.168.122.2
Nikolay
ipaddr: “{{ '192.168.122.3/24' | ipaddr('next_usable') }}” ?
спасибо за наводку. Так работает. - name: get free ip vars: exclude_ips = [’192.168.122.2/24’, ’192.168.122.3/24’] set_fact: ipaddr: “{{ (exclude_ips | max) | ipaddr('next_usable') }}” # return 192.168.122.3 Правда, освобожденные адреса в середине диапазона /24 все равно не обрабатываются, надо подумать как еще отфильтровать.
Alexandr
добрый день! а подскажите пожалуйста как через extra_vars можно передать переменную вида path.name ?
Артём
добрый день! а подскажите пожалуйста как через extra_vars можно передать переменную вида path.name ?
Это при том, что path.всёостальное задано где-то в другом месте?
Alexandr
да(
Артём
То есть у нас словарь кусками определён и нужно его смержить, так?
Alexandr
у меня есть одно инвентори там есть групповая переменная path.name и есть втрое инвентори в котором есть такая же перемененая . я через template делаю щаблон с bash скриптом в котором хочу переопределить эту переменную