@pro_ansible

Страница 484 из 625
Александр
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)

Google
bebebe
05.06.2018
09:13:34
Спсибо. Попробую такой вариант.
только пробуйте на ansible 2.5.x.x на предыдущих версиях был баг с экртемально низкой производительностью такого решения

Vlad
05.06.2018
10:02:43
а в ансибле import re есть? тогда просто re.match(regex, content)
http://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#regular-expression-filters

Артем
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
ок, как получить текущее состояние сервиса с помощью этого модуля?
никак. ансибл - про реализацию заданного состояния. можно запустить с ключом —check, выхлоп подскажет нужное.

Stepan T.
05.06.2018
11:53:25
никак. ансибл - про реализацию заданного состояния. можно запустить с ключом —check, выхлоп подскажет нужное.
Это правильнее. Может там нужно, чтбы сервис был, но не был запущен в какой-то момент

Sergey
05.06.2018
11:54:29
Это правильнее. Может там нужно, чтбы сервис был, но не был запущен в какой-то момент
Тогда не запускаем плейбук. Ansible - stateless по природе, из непонимания и непринятия этого факта и рождаются троллейбусы.jpg

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) в регистр ?

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 может в контейнере?

а уже он не может

вроде как дефолтные инструкции установки все четрез докер/опенстак/кубернетис

Dmitrii <freehck>
05.06.2018
15:33:53
Awx развернут в контейнерах? Воркер знает про это dnsmasq? Что в фактах локалхоста на воркере?
Да, я только что осознал, что он в контейнере крутится. Глянул в него. Там нету в resolv.conf нужной записи nameserver.

Интересный, конечно, вопрос. Как теперь её туда добавить...

Славик
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
да

инвентарь инсталлера?
awx_container_search_domains= awx_alternate_dns_servers=

Артем
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')" лажа в записи

Страница 484 из 625