citius
тем не менее баунсер наверное будет лучше засчет пулинга и вообще это постгресовский проект.
но у меня были определенные ограничения, баунсер нельзя было юзать.
citius
однако я его с патрони не скрещивал, и как оно будет жить в проде не скажу.
Vladimir
citius
А это разве их проект ? ОО
я наверное неясно выразился, имел в виду что хапрокси универсальная штука, а баунсер чисто под постгрес заточен. )
Vladimir
А понял, спасибо :)
Joe
Всем привет, подскажите есть фаил ipadr.txt.j2
—
client
server {{hostvars[item].ansible_default_ipv4.address}} {{item}} 1443
—
в него мне надо подставить из инвентори ansible_host=10.0.0.1 для каждого из моих серверов и сложить их локально на каждый сервер /home/ipadr.txt
server 10.0.0.1 1443
Anonymous
Везде одинаково или собрать все IP адреса ?
Sergey
Это выглядит как два отдельных таска. В первом - делегирование на локалхост и сбор фактов, во втором - раскладка шаблона, который использует полученный факт с адресами, по хостам.
Joe
это таска
- name: set client-configs
template: src=~/ansible/playbook/templates/root/client-configs/ ipadr.conf.j2 dest=~/client-configs/ ipadr.conf
мам фаил
{% for item in groups['info-server'] %}
remote {{ansible_host}} 443
{% endfor %}
ShadoWalkeR
Господа, хотите творческий вопрос на тему шаблонов?
У меня есть дефолтный шаблон, на основе которого я генерирую yml файлы на основе переданного имени. И я хотел бы для некоторых имен иметь возможность из второго шаблона дописать в результирующий файл (не перезаписать!)
В модуле параметра позволяющего дописывать нет - как это можно реализовать?
ShadoWalkeR
А все - уже вроде нашел
Anonymous
У меня такая проблема - есть много-много разных приложений, которые общаются между собой. Есть группа серверов на которые нужно эти приложения деплоить. Держать 15 плейбуков, каждый деплоит свой сервис, не вариант. Я пришла к такому решению: в переменных группы задавать куда что деплоится, а потом использовать delegate_to и run_once для каждой таски
Anonymous
Вот пример: https://gist.github.com/laserbat/f5995cb6ae6bccd103652259f32cd86e
Anonymous
Вопрос, есть ли более адекватный подход к решению моей проблемы?
bebebe
Anonymous
время задуматься о k8s
Я знаю. Но работаю в такой конторе что даже ansible - уже большое новшество. До меня всё ручками делалось...
Vladimir
У меня такая проблема - есть много-много разных приложений, которые общаются между собой. Есть группа серверов на которые нужно эти приложения деплоить. Держать 15 плейбуков, каждый деплоит свой сервис, не вариант. Я пришла к такому решению: в переменных группы задавать куда что деплоится, а потом использовать delegate_to и run_once для каждой таски
Что-то такое я начинал делать для своего пет-проджекта. Но недавно пощупал тулзы от HashiCorp (начал с Terraform, Consul и Nomad), и решил уйти на них. А анзибл буду использовать для всяческого maintenance.
Доеду до дома, гляну, как у меня там, в Ansible, было и тогда отвечу.
Joe
💪
Vladimir
У меня такая проблема - есть много-много разных приложений, которые общаются между собой. Есть группа серверов на которые нужно эти приложения деплоить. Держать 15 плейбуков, каждый деплоит свой сервис, не вариант. Я пришла к такому решению: в переменных группы задавать куда что деплоится, а потом использовать delegate_to и run_once для каждой таски
Посмотрел, как я делал. Решение в принципе то, что в доках анзибла описано. Структура каталогов такая:
1) В корне лежат hosts с описанием хостов и групп, которые хосты составляют. Рядом лежат плейбуки. В каждом плейбуке указаны группы хостов (куда деплоить) и роли (что именно деплоить)
2) В roles/role_name/tasks/ лежат таски (что именно делать). В roles/role_name/templates/ , соотв., лежат темплейты для генерации конфигов конкретных приложений.
3) В /group_vars/ лежат переменные, которые в тасках соотв ролей будут использоваться.
Вообще всё устроено примерно так, как описано в доках: https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html#content-organization
Vladimir
Но вообще да, анзибл тут немного неподходящий инструмент. Важное отличие Ansible от Nomad/k8s, в том, что у анзибла нет scheduler'а, который умеет самостоятельно планировать на каком хосте какие приложения должны работать. У анзибла это придётся строго задавать, привязывая деплой конкретного приложения на конкретный хост.
Nklya
анзибл
Nklya
что ж не ансамбль сразу?
Anonymous
Anonymous
Спасибо
Joe
Anonymous
Может кто подсказать - почему не раскрывается следующая конструкция:
- name: "Build hosts file"
lineinfile: dest=/etc/hosts regexp='.*{{ item }}$' line="{{ hostvars[item].ansible_default_ipv4.address }} {{item}}" state=present
when: hostvars[item].ansible_default_ipv4.address is defined
with_items: groups['all']
Ошибка: The error was: error while evaluating conditional (hostvars[item].ansible_default_ipv4.address is defined): u\"hostvars['groups['all']']\" is undefined
Вернее даже не так. Причина понятна - он подставил groups['all'] как строку. А как в таске раскрыть список всех хостов ?
Salem
“{{ groups[‘all’] }}”? могу врать
Anonymous
Нет, так на синтаксис жалуется.
Joe
А есть у кого нибудь конструкция:
файы на хостах в группе info-server находятся в дирректории /root/config/ipadr.txt
их надо загрузить в ansible и разложить по директориям
пример:
/root/config/server-1/ipadr.txt
/root/config/server-2/ipadr.txt
/root/config/server-3/ipadr.txt
Joe
имена серверов надо взять из hosts.ini
bebebe
Joe
Joe
Мне репорты эти надо себе на комп загружать
Stas
посоны
Stas
можно ли объявить environment для всего playbookа
Stas
длинная портянка и для каждой таски её добавлять выглядит убого
citius
citius
или я чего не понял?
Stas
переменные объявлять я умею
Stas
environment variables
citius
- hosts: blabla
vars:
foo: '{{ lookup('env','ENV_VAR') }}'
citius
так чтоли?
citius
или опять не тот environment? )
Stas
без лукапов
Stas
но уже тот
Stas
https://docs.ansible.com/ansible/2.5/user_guide/playbooks_environment.html
citius
You can also use it at a play level
citius
кстати ни разу не юзал это, поэтому и не понял о чем речь
Stas
вот в том то и дело что не сработало
GithubReleases
ansible/ansible was tagged: v2.5.6
Link: https://github.com/ansible/ansible/releases/tag/v2.5.6
Release notes:
New release v2.5.6
Anonymous
GithubReleases
ansible/ansible was tagged: v2.6.1
Link: https://github.com/ansible/ansible/releases/tag/v2.6.1
Release notes:
New release v2.6.1
Anonymous
Hi is there ansible module for suse firewall
manefesto
NO
manefesto
No different between iptables and firewalld, both use netfilter
[IPT] Dmitry
Firewalld использует d-bus в этом и есть разница
Div
как хочецца написать про забаненых в гугле...
Vladimir
А давно веб версию гелакси поменяли ?Оо Чет сейчас зашел и не узанл
Vladimir
*не узнал
Vadim
на этой неделе вроде
Stas
ребят можно ли как нибудь закостылить
Stas
сейчас есть таск, который в цикле вызывает модуль shell
Stas
можно ли параллельно 4 шелла вызвать?
Stas
все это на одном хосте
Div
параллельно или по очереди?
Stas
параллельно
Stas
по очереди он итак в моем случае вызывает
manefesto
ты мне скажи как ты в линуксе их паралельно запустил бы
manefesto
я предпологаяю что какая нибудь магия вроде nohup script.sh
manefesto
ну это не паралельно будет на самом деле
manefesto
просто не дожидаясь их окончания
manefesto
https://stackoverflow.com/questions/39347379/ansible-run-command-on-remote-host-in-background
Vladimir
Господа, а кто как решал проблему удаления старых ядер для rpm based систем ? Centos\RHEL etc, через shell\command ?
manefesto
что-то типа yum autoremove
Vladimir
Он не удалит же ну :)
Vladimir
Если бы все так просто было бы, я бы не писал сюда
Vladimir
Это только в деб работает