#Rλatan
Как проверить минимальную версию для netaddr фильтра?
#Rλatan
"changed": false, "msg": "AnsibleFilterError: The ipv4 filter requires python's netaddr be installed on the ansible controller"}
#Rλatan
~$ dpkg -l | grep python | grep net
ii python-netaddr 0.7.18-2 all manipulation of various common network address notations (Python 2)
ii python3-netaddr 0.7.18-2 all manipulation of various common network address notations (Python 3)
#Rλatan
ок понятно на контрольном хосте нужен
Aleksey
Заметка для будущих пользователей gcp_compute модуля.
Uses a YAML configuration file that ends with gcp_compute.(yml|yaml) or gcp.(yml|yaml).
Означает что файлы которые не заканчиваются на gcp.yml не будут парситься. и будут выдавать ошибку
[WARNING]: Unable to parse gcp-dev-inventory.yml as an inventory source
не вьебитесь головой (с)
Dmitry
Logan
коллеги, есть ли в ансибл возможность смерджить переменную из defaults и переменную, которая задается прямо во время выполнения? Если имя переменной одно и то же? Или переменная, задаваемая в процессе выполнения дефолтную гарантированно перетрет и единственный выход - два разных имени?
Sergey
Aleksey
Roman
Dmitry
Николай
Dmitry
Так. Помогите, как сделать аналог always и при этом сохранить any_errors_fatal ? Кроме как разобраться в коде ansible и запатчить
Roman
Ivan
товарищи!
не могу разобраться - как при выполнении таска сделать так, чтоб он выполнялся только для хостов в определенной группе?
Ivan
последнее что нашел - when: inventory_hostname in groups['group_name']
но не срабатывает :(
Alexander
Vladislav
Vladislav
- hosts: deploy_host
tasks:
Vladislav
и так далее
Vladislav
у меня плейбук, он выполняет действия на одном хосте, потом переключается на другой хост и так выполняет таски
Vladislav
это надо же?
Kirill
Всем привет! Захожу на ssh через ansible под одним пользователем, но перед началом тасок нужно переключиться на root, как это сделать?
Kirill
я по разному пытался уже, просто ловлю на юзере ошибку Failed to lock apt for exclusive operation"
Kirill
при использовании apt
Kirill
поэтому думал, что нужно на рута перекидывать
Kirill
прямого входа на сервак через рут нет
Kirill
ну вот а если я не от рута захожу
Timur
Dim
Потом напишу завелось или нет 😁 если кто сталкивался и знает оптимальное решение напишите, буду благодарен
Timur
GithubReleases
ansible/ansible tagged: v2.9.5
Link: https://github.com/ansible/ansible/releases/tag/v2.9.5
Release notes:
New release v2.9.5
Dim
Anton
у кого-есть свободное время. кто-нибудь может проверить почему не отрабатывает import_tasks: tasks/wal-g.yml
вроде все корректно сделал.
вот pull request
https://github.com/vitabaks/postgresql_cluster/pull/28
Заранее спасибо
Vitaliy
Vitaliy
у кого-есть свободное время. кто-нибудь может проверить почему не отрабатывает import_tasks: tasks/wal-g.yml
вроде все корректно сделал.
вот pull request
https://github.com/vitabaks/postgresql_cluster/pull/28
Заранее спасибо
Я вчера отвечал тебе в PR, ты просто забыл wal_g в одинарные кавычки .
when: wal_g_install == "true" and 'wal_g' in patroni_create_replica_methods
Тут и wal_g_install можно на bool переделать, но можно и так оставить.
Проверил, работает.
TASK [wal-g | download "wal-g" binary] *************************************************************************************************************************************************
changed: [10.128.64.140] => (item=https://github.com/wal-g/wal-g/releases/download/v0.2.14/wal-g.linux-amd64.tar.gz)
TASK [wal-g | extract "wal-g" into /tmp] ***********************************************************************************************************************************************
changed: [10.128.64.140]
TASK [wal-g | copy "wal-g" binary files to /usr/local/bin/] ****************************************************************************************************************************
changed: [10.128.64.140] => (item=wal-g)
TASK [wal-g | create wal-g conf directory] *********************************************************************************************************************************************
changed: [10.128.64.140]
Anton
Проверю через час полтора
Timur
when: wal_g_install == "true"
Так делать не нужно
Timur
when: wal_g_install | bool
Maksim
Привет. Подскажите, пожалуйста, решение, по правильной настройке lineinfile
Кейс:
lineinfile парсит ip из группы хостов и добавляет в pg_hba.conf конец
Так это выглядит сейчас.
line: "{% for i in groups['all'] %} host all all {{ hostvars[i]['ansible_default_ipv4']['address'] }}/32 md5 \n{% endfor %}"
Часто получается, что нужно повторно прогонять весь плейбук, возможно добавление хостов и прочего.
Как сделать так, чтобы он не добавлял строчки заного при каждом прогоне, а добавлял только новые?
Maksim
Пока в голове нет решения, может сталкивался кто
Vitaliy
when: wal_g_install | bool
Да, знаю. Но на самом деле это не строгое требование. Работать будет.
В коде пока так, позже будет рефакторинг и поправлю везде.
Timur
Vitaliy
нет задачи в galaxy. но спасибо за комментарий.
Как уже сказал выше, я позже выделю время на рефакторинг.
Maksim
Timur
Нет
Aleksey
чой то ? when: wal_g_install is bool
читается лучше
Timur
Aleksey
в питоне да.
Timur
bool вообще избыточно, если на то пошло
Timur
Достаточно when: myvar обычно
Andrey
Maksim
Maksim
Сейчас запихнул в blockinfile, буду тестить
Andrey
Не вариант, уже обдумывался.
окей, вариант другой, к примеру берешь, какой-нибудь pg_hba.conf создаешь как временный, накатываешь всё на него, делаешь copy tmpl_pghba.conf > pg_hba.conf > remote_src , делаешь HUP постгрес. Удаляешь временный.
Andrey
там можно в insert after конечно попробовать, но не факт, что отработает нормально
Yury
Вот сейчас ты меня убедил что надо делать template с jinja xD
Andrey
так lineinfile каждый раз будет её искать и перетирать
Maksim
Maksim
я потестирую
Andrey
вот будет весело если в tmp
[IPT] Dmitry
ребят, есть роли: вебсервер и несколько однотипных ролей приложений. есть однотипный таск по настройке агента мониторинга для этих приложений. идеологически он должен относится к роли вебсервера, но практически настраивается и выполняется в роли приложения. как быть? запихнуть таск в роль вебсервера и инклюдить в ролях приложений?
#Rλatan
как можно в {% for interface in ansible_interfaces %}
Пройтись по всем портам если порт оределяется словарем ansible_<if name>
не работает:
{% for i in ansible_interfaces %}
| {{ i }} | {{ ansible_%s|format(i)['active'] }} |
{% endfor %}
Sergey
#Rλatan
#Rλatan
В проходе отказано
#Rλatan
не верный совет ведь..
hostvars[inventory_hostname]
помогло
Sergey
Sergey
@ob_hs Приношу свои извинения.
Alex
На уровне плея задаю
- name: Test env vars
hosts: localhost
gather_facts: no
environment:
PATH: "{{ lookup('env','PATH') }}:/my/local/bin"
Затем в таске вызываю
- name: Show value
shell: echo "${PATH}"
- name: Show value
debug: msg="{{ lookup('env','PATH') }}"
в первом случае, PATH содержит /my/local/bin, а во втором нет. это ожидаемое поведение?
Lamobot
Alex
George
потому что шелл дочерний процесс
George
🤦♂️