
Александр
05.06.2018
09:03:02
Всем привет! Я делаю шаблон конфига и хочу вот такое: {% for item in group_names if '^app_' in item %}{item}{% endif %}{% endfor %}}
Но вариант выше не работает, так что я придумал только такое: {% for item in group_names if 'app_' in item %}{% if ( 'dc1' not in item and 'dc2' not in item )}{item}{% endif %}{% endfor %}}
Как можно сделать лучше? Т.е у меня в group_names есть dc1_app_name1 и app_name1 и я хочу чтобы в конфиг попал только app_name1.

alex
05.06.2018
09:08:27
а в ансибле import re есть? тогда просто re.match(regex, content)

bebebe
05.06.2018
09:09:10

Александр
05.06.2018
09:12:24

Google

bebebe
05.06.2018
09:13:34

Александр
05.06.2018
09:14:04

Sergey
05.06.2018
09:25:02

Vlad
05.06.2018
10:02:43

Артем
05.06.2018
11:39:29
Привет всем! Не могли бы подсказать способ проверить запущен ли сервис в linux с помощью ansible
ранее юзал что то типа
- name: check postgresql service
shell: systemctl status postgresql | sed -n '3p'
register: systemctl
- debug: var=systemctl.stdout_lines
но это не проверка, а лишь вывод 3-й строки состояния сервиса

Stepan T.
05.06.2018
11:41:50
Сколько серверов, где нужно состояние сервисов отслеживать?

Артем
05.06.2018
11:42:56
после билда инваремента хочу проверить все ли запущено, примерно 20-30 сервисов всего

Stepan T.
05.06.2018
11:43:16
Это сервисы или хосты?
20-30

Артем
05.06.2018
11:43:46
хостов с десяток

Google

Артем
05.06.2018
11:43:59
на каждом по 2-5 сервисов

Stepan T.
05.06.2018
11:44:03
Может посмотришь в сторону Cockpit?
Ансибл круто, но мне кажется у него другие задачи. Хотя я сам люблю троллейбусы из хлеба собирать.
Ещё можно ELK собрать, куда лить логи с серверов и по логам ориентироваться в каком у тебя состоянии нужный тебе сервер и сервисы на нём.

Артем
05.06.2018
11:47:24
как я понял Cockpit это веб консоль.. ещё один сервис который я не хотел бы прикручивать к проекту

Stepan T.
05.06.2018
11:48:25
Ну, позиция понятна

Артем
05.06.2018
11:48:48
я хочу получить в результате статус сервисов проекта, у примеру,
postgresql : ok

Stepan T.
05.06.2018
11:49:16
http://docs.ansible.com/ansible/latest/modules/service_module.html#service-module

Артем
05.06.2018
11:50:46
ок, как получить текущее состояние сервиса с помощью этого модуля?

Stepan T.
05.06.2018
11:51:13
Возможно взять вот отсюда элемент стартующий сервис, и если ок, то ок, если ченжед, то смотрим в логи, почему не стартовался ранее, а если фэйлд, то смотрим в логи очень быстро и нервно почёсываясь

Артем
05.06.2018
11:51:56
идея интересная

Sergey
05.06.2018
11:52:17

Stepan T.
05.06.2018
11:53:25

Sergey
05.06.2018
11:54:29

Stepan T.
05.06.2018
11:55:23
Как я и говорил, есть специальные инструменты предназначенные для контроля состояния служб на серверах
Если предполагается некоторая алертность на 10 серверах, то надо иметь какой-нибудь zabbix или подобное, настроенное под твои задачи.

Артем
05.06.2018
11:59:02
"state": "started",
"status": {
"ActiveState": "active"
"state": "started",
"status": {
"ActiveState": "inactive",

Google

Артем
05.06.2018
12:24:56
как правильно вынести состояние ActiveState в register ?
Пытался получить состояние таким образом
- service:
name: postgresql
state: stopped
register: 'status.ActiveState'
- debug: var=status.ActiveState
но вывод один
TASK [debug] *******************************************************************************************************************************************************************************************
task path: /home/****/check_status_services.yml:27
ok: [pg1] => {
"status.ActiveState": "VARIABLE IS NOT DEFINED!: 'status' is undefined"
где ошибся, кто подскажет?

Алексей
05.06.2018
12:49:39
register: blabla
плохой регистер сейчас.
постарайтесь избегать wellknown имен. они могут быть заняты

Артем
05.06.2018
12:56:42
как тогда загнать вывод служебной переменной(ActiveState) с модуля ансибла (service) в регистр ?

Wom
05.06.2018
13:01:11

Salem
05.06.2018
13:01:24
а потом уже фильтруй

Алексей
05.06.2018
13:01:28
делать регистр полный
в выводе указывай чо надо

Артем
05.06.2018
13:05:24
спасибо

Артем
05.06.2018
13:05:25
- service:
name: postgresql
state: stopped
register: testtttt
- debug: var=testtttt.status.ActiveState
TASK [debug] *******************************************************************************************************************************************************************************************
task path: /home/****/check_status_services.yml:27
ok: [pg1] => {
"testtttt.status.ActiveState": "inactive"
теперь воркает)))???

Artem
05.06.2018
13:06:49
рабит

Артем
05.06.2018
13:21:01
знает кто нибудь можно через debug: msg выводить сообщения разных цветов (зелёные, желтый, красный) ?
?

Алексей
05.06.2018
13:21:49
никак
я потратил на это слишком много времени. ответ никак.

Google

Dmitry
05.06.2018
13:23:06
в код залезть?

Алексей
05.06.2018
13:23:13
там некуда особо.

Admin
ERROR: S client not available

Артем
05.06.2018
13:23:14

Алексей
05.06.2018
13:23:23
можно сделать форматтер которй будет это делать
или сделать модуль debug_color
но всё это обречено на костыли

Vadim
05.06.2018
13:44:40
Ansii escape codes, но это хак

Алексей
05.06.2018
13:51:20
с учетом ограниченности примения я бы даже не стал про него вспоминать

bebebe
05.06.2018
14:02:02
я тут немного не в тему присоветую
https://github.com/kilobyte/colorized-logs

Dmitrii <freehck>
05.06.2018
15:24:45
Здорова, народ. Я тут запнулся с AWX, хотел спросить, может кто-нибудь в курсе.
Когда запускаю плейбук в AWX, он падает с сообщением вида "Failed to connect to the host via ssh: ssh: Could not resolve hostname prod001: Name or service not known\r\n"
Однако если я захожу на сервер, где крутится awx (и dnsmasq, который собственно за резолвинг и отвечает), и выполню команду host prod001 — получаю корректный результат. И ssh prod001 работает тоже.
Никак не могу найти, может быть AWX-у надо задавать настройки DNS?

Славик
05.06.2018
15:26:23
так AWX может в контейнере?
а уже он не может
вроде как дефолтные инструкции установки все четрез докер/опенстак/кубернетис

Vadim
05.06.2018
15:31:51

Dmitrii <freehck>
05.06.2018
15:33:53
Интересный, конечно, вопрос. Как теперь её туда добавить...

Славик
05.06.2018
15:34:42
там при установке, вроде, в инфентори файле можно задавать

Dmitrii <freehck>
05.06.2018
15:34:49
Если я плейбук из Installation Guide перезапущу — он мне не убьёт текущих настроек ли?
А то я уже много проектов насоздавал.

Славик
05.06.2018
15:35:15
не должен

Google

Славик
05.06.2018
15:36:43
главное postgres_data_dir не похерить
и может docker_compose_dir
ну это у меня через докер композер поднято

Rodion
05.06.2018
15:37:45
Можно ещё забэкапить настройки заодно)
https://github.com/ansible/awx/blob/devel/DATA_MIGRATION.md

Славик
05.06.2018
15:39:12
или снапшот какой, если на виртуалке

Dmitrii <freehck>
05.06.2018
15:55:16
Так, учитался доков. В упор не вижу, где в плейбуке AWX конфигурируется локальный DNS.
ооо, так там же в инвентаре спец. пункт есть.

alex
05.06.2018
15:57:46
инвентарь инсталлера?

Dmitrii <freehck>
05.06.2018
15:58:17
да

Артем
05.06.2018
17:03:46
Я тут пытаюсь опрос состояния сервисов в цикл загнать
- hosts: backend
gather_facts: False
vars:
services_checks:
- { serivce_name: 'haproxy', register_name: 'backend_haproxy'}
tasks:
- service:
name: "{{ item.serivce_name }}"
state: started
register: "{{ item.register_name }}"
with_items: "{{ services_checks }}"
- debug:
msg: "{{ item.serivce_name }} not running"
when: "({{ item.register_name }}.ActiveState) != ('active')"
with_items: "{{ services_checks }}"
Гдето в этой строке when: "({{ item.register_name }}.ActiveState) != ('active')"
лажа в записи