@pro_ansible

Страница 584 из 625
Sergey
24.09.2018
07:27:20
вот есть инвентори в инвентори группа в группе два хоста надо чтобы оба хоста участвовали в конфиге вмеcто proxysql_servers = ( { hostname="{{ proxysql_server1 }}" port=6032 weight=0 comment="proxysql1" }, { hostname="{{ proxysql_server2 }}" port=6032 weight=0 comment="proxysql2" } )

иначе самым простым методом будет прокидывание адреса из vars

Aion
24.09.2018
07:29:09
hostvars[host].inventory_hostname <- имя хоста из инвентори файла

доступен в цикле for, который я писал выше

Google
Aion
24.09.2018
07:31:27
если у вас не объявлены группы в инвентори для хостов, к ним (хостам) можно обратиться по встроенной группе [all]

Sergey
24.09.2018
07:32:27
хостгруппа обьявляется при старте

ansible-playbook -i inventory/proxysql proxysql.yml -e "hostgroup=perf env=perf"

env служит как указатель варсфайла

т.е один конфиг(шаблон) четыре варсфайла

Anton
24.09.2018
07:35:35
может проще сделать отдельный инвентори на каждую среду?

Sergey
24.09.2018
07:36:12
можно было бы сделать 4 инвентори но стоит ли, если и так по 2 хоста в группе

Aion
24.09.2018
07:36:37
у вас есть группа

в цикле for вы проходите по ней и достаете значения хостов, что вам еще нужно в вашей задаче?

Sergey
24.09.2018
07:37:37
Aion
24.09.2018
07:38:52
ничего О _о я же говорил что мне сойдет вариант
приношу свои извинения, вскольз прочитав подумал, что вы продолжаете искать решение.

А
24.09.2018
08:15:57
Всем привет! Не поддерживает пример динамического инвентаря из бд.

Maksim
24.09.2018
09:14:51
Пиши кастомный

Google
Terminator
24.09.2018
09:38:10
@demch1k27 будет жить. Поприветствуем!

Kanstantsin
24.09.2018
10:24:01
Добрый день! Такой вопрос: Есть плэйбук, который собирает определённые данные с хоста и регистрирует переменную, после чего надо выполнить некоторые таски на другом хосте, но с зарегестрированными ранее переменными, как правильно пробросить значение переменной в добавленный плэйбук?

Kanstantsin
24.09.2018
10:35:38
Денис
24.09.2018
13:40:37
А как-то можно сделать, чтобы callback плагин работал на определенные плэйбуки или роли?

или только подсовывая разные ansible.cfg?

Dok
24.09.2018
14:04:49
ну так делаешь apt: name: rabbit register: apt_install - name: keys ... ... when: apt_install.changed
он в любом случае выполняет первый apt и блоке ничего не трогает

у меня через lineinfile сделано
сделал так pam_limits: limit_type='-' limit_item=nofile domain='*' value=unlimited Не знал, что прочерк обобщает hard и soft

* - не читалась, когда была в инклюженном списке with_items

Ребят, как кинуть в register наличие установленного в ubuntu сервиса?

Dok
24.09.2018
14:24:09
сервиса или пакета в репе?
Пакета. Ну, например, nginx или rabbitmq

Sergey
24.09.2018
14:25:54
а ты как хочешь с ним потом поступать

Dok
24.09.2018
14:27:43
Хочу поставить условие, если не стоит nginx, то выполнить блок. В блоке добавить ключ, добавить репозитории, обновить кеш, установить nginx определённой версии. Иначе, если nginx уже стоит, блок пропустить

Sergey
24.09.2018
14:34:36
Хочу поставить условие, если не стоит nginx, то выполнить блок. В блоке добавить ключ, добавить репозитории, обновить кеш, установить nginx определённой версии. Иначе, если nginx уже стоит, блок пропустить
а нельзя просто указать в первых джобах ставить nginx такой то версии с такими то параметрами, если его нет, ансибл его установит, т.к все декларативно

Dok
24.09.2018
14:35:50
Да, я первые джобы и делаю, просто эти проверки каждый раз долго идут

Sergey
24.09.2018
14:36:37
Dok
24.09.2018
14:47:57
так они у тебя и так и так будут идти, нет?
Таки можно поставить условие when и должно пропустить, не тратя время на ненужные проверки

Неужели так никто не делал?

Просто какой смысл при каждом обновлении конфига php-fpm проверять наличие установленных двух десятков библиотек php, если php уже стоит?

Google
Dok
24.09.2018
15:28:51
Ну если надо обновить пакет везде, то разово его обновить отдельным запросом ансибла, а в плейбуке заменить версию пакета в этом условном блоке, не?

Чтоб при новых установках ставилась уже новая версия

Или я что-то неправильное говорю?

Pavel
24.09.2018
15:37:57
Ну если надо обновить пакет везде, то разово его обновить отдельным запросом ансибла, а в плейбуке заменить версию пакета в этом условном блоке, не?
при такой постановке задачи получается что можно считать все пакеты установлы и нужных версий - так что никаких проверок и установок не надо....

Dok
24.09.2018
15:38:59
Ну да, но и отдельных конфигов ансибла ustanovka_php.yaml не хочется плодить

Pavel
24.09.2018
15:41:12
у меня внутри роли ставятся нужные пакеты нужных версий для этой роли... и так для многих ролей, даже если они вызываются в 1 плейбуке

а наборы ролей для разных серверов могут быть разные

соответственно разные плейбуки

Dok
24.09.2018
15:43:22
Ну, у меня сервера одинаковые :) Но дело даже не в этом, просто серверов тьма

Udjin
24.09.2018
15:47:45
парни а вот у меня проблема такая на 2.5.3 было всё окей, но вот 2.6.4 мозги выносит fatal: [nazgul.tech]: FAILED! => {"changed": false, "cmd": "/usr/bin/git clone --origin origin '' /home/alice/nazgul..tech", "msg": "fatal: destination path '/home/alice/nazgul.tech' already exists and is not an empty directory.", "rc": 128, "stderr": "fatal: destination path '/home/alice/nazgul..tech' already exists and is not an empty directory.\n", "stderr_lines": ["fatal: destination path '/home/alice/nazgul.tech' already exists and is not an empty directory."], "stdout": "", "stdout_lines": []} а всё потому что в папке куда пулится - есть папка .ansible/tmp

Udjin
24.09.2018
15:47:50
чо делать-то?

Fedor
24.09.2018
15:48:11
/usr/bin/git clone --origin origin '' /home/alice/nazgul..tech", "msg": "fatal: destination path '/home/alice/nazgul.tech' already exists and is not an empty directory."

гит не может клонить в существующую директорию

Udjin
24.09.2018
15:48:28
да, там папка - а всё потому что в папке куда пулится - есть папка .ansible/tmp

нет

ты не понял

он не может пулить в директорию в которой уже что-то есть

Fedor
24.09.2018
15:48:56
не может

Google
Udjin
24.09.2018
15:48:59
почему-то создаётся в папке .ansible

ну я вот удалил щас полностью её

гит модуль её создал а в ней внутри папка .ansible

Admin
ERROR: S client not available

Udjin
24.09.2018
15:50:42
как избавиться

?

даунгрейд ансибла?

решил проблему даунгрейдом ансибла до 2.6.0

cent
24.09.2018
18:03:21
А кто-то ловил проблемы с heredoc ? У меня почему-то в конце файла EOF добавляет постоянно

Dok
25.09.2018
07:27:19
Ребят, как кинуть в register наличие установленного в ubuntu сервиса?
Доброе! Кто не видел, может у вас есть решение?

cent
25.09.2018
07:31:32
Доброе! Кто не видел, может у вас есть решение?
Проще всего проверять наличие бинарника, или дернуть версию у этого бинарника https://dpaste.de/Gto6 https://dpaste.de/eojY https://dpaste.de/NRHE

Евгений
25.09.2018
07:36:21
Доброе! Кто не видел, может у вас есть решение?
Только костыль типа shell: if [ $(systemctl status zabbix-agent | grep running| wc -l) -eq 0 ]; then error; fi register: zabbix_agent_service_status when: - zabbix_agent_service_status is succeeded проверяет, запущен ли заббикс, тоже чтоб пропустить установку, настройку и много чего еще. Но я так больше не делаю, ибо ансибл второй раз ставить не будет, и файл конфигурционный пропустит если все ок. Так что лучше просто описать конечное состояние хоста

Евгений
25.09.2018
07:38:37
Всем гугл помог)

Fedor
25.09.2018
07:39:06
Баш жи

shine
25.09.2018
07:39:23
программирование через stackoverflow

Евгений
25.09.2018
07:41:36
Конфиг файл можно вынести из блока с этим условием, поставив сразу после него
Уважаемые парни вокруг нас не в восторге продолжения этой темы)

Dok
25.09.2018
07:51:05
Эх)

Google
Dok
25.09.2018
09:01:40
Проще всего проверять наличие бинарника, или дернуть версию у этого бинарника https://dpaste.de/Gto6 https://dpaste.de/eojY https://dpaste.de/NRHE
- name: Стоит ли NGINX? stat: path="/usr/sbin/nginx" register: nginx - include: install_nginx.yml when: nginx.stat.exists == False збс :)

cent
25.09.2018
09:03:16
- name: Стоит ли NGINX? stat: path="/usr/sbin/nginx" register: nginx - include: install_nginx.yml when: nginx.stat.exists == False збс :)
Только регистры нужно интереснее придумывать, чтобы они не перетирались) Я делаю так <rolename>__<r as register>_<register_name> nginx__r_installed

Dmitry
25.09.2018
09:40:23
вот пример тебе .wine/drive_c/Program\ Files\ \(x86\)/Skillbrains/lightshot/Lightshot.exe

пробел а также скобки левым слешом

Mikhail
25.09.2018
13:07:14
вопрос на засыпку: есть список чисел, нужно через set_fact задать переменную, значение которой не входит в этот список

сходу напрашивается решение: получить unused_gids: "{{ gid_range | difference(all_gids) }} и взять из него

но результат, по непонятной мне причине: unused_gids == gid_range

разобрался, так работает, да

Terminator
25.09.2018
16:58:47
@szenin будет жить. Поприветствуем!

Shamil
25.09.2018
17:07:08
Друзья! А почему даже при включенном pipelining'е у меня на таргет-хосте все равно остается висеть 270 ssh-agent'ов? Объясните, пожалуйста, для быдла.

Sergey
26.09.2018
00:11:42
Друзья! А почему даже при включенном pipelining'е у меня на таргет-хосте все равно остается висеть 270 ssh-agent'ов? Объясните, пожалуйста, для быдла.
А вот понимать бы, нафига козе баян. Тьфу - зачем вообще в твоём процессе агент на_целевом_ хосте.

Паблик-ключи обычно просто кладутся в $HOME/.ssh/authorized_keys.

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