
Dmitry
27.03.2018
07:08:23
Всем привет! Коллеги, как с помощью Ansible заменить в файле определенную по счету строку, например, 7ю? Все примеры, которые нахожу, используют либо regexp (мне не подходит, неизвестно что в этой строке), либо маркеры "начало\конец файла" - тоже не мой случай.

Artem
27.03.2018
07:08:56
shell %)

Sergey
27.03.2018
07:09:54

Matvey
27.03.2018
07:13:11
openssl_privatekey в 2.5 так и не научили генерить ec-ключи

Google

here1am
27.03.2018
08:05:28
Интересно. Можешь отписать как получилось?
пока что заставил работать вот такое: '{% for item in sites %}{{ item | combine({"username": item.domain | regex_replace("\.|-", "_")}) }}{% endfor %}'. только возвращается это всё в виде строки, лол

Pavel
27.03.2018
08:20:34
спрошу еще раз на всякий случай:
можно ли в 1 блок "blockinfile" воткнуть список целиком построчно?

here1am
27.03.2018
08:25:45
я бы попробовал так:
- name: users
blockinfile:
dest: blabla
marker: "# {mark} my users"
insertafter: "^#USERS:"
block: |
{% for item in [1, 2, 3] %}
user: {{ item }}
{% endfor %}

Pavel
27.03.2018
08:28:59

Dmitry
27.03.2018
09:49:49
Господа. Есть ansible последней достпуной версии (2.1.1.0-1~ubuntu16.04.1). Ключи SSH есть, подключиться к целевым устройствам получается. но при попытке запустить любой плейбук, получаю fatal: [10.6.7.1]: UNREACHABLE! => {"changed": false, "msg": "SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh", "unreachable": true}. Что я делаю не так?

Sergey
27.03.2018
09:53:22
запусти то же самое с ключом -vvvv, тогда увидишь подробный лог

eucariot
27.03.2018
09:56:32
Всем привет.
В модуле ce_config для хуавэйских коммутаторов нашёл не то багу, не то фичу, которая мешает нормальной работе. У себя на локалке подхачил, но такое не апстримят.
Что сделать, чтобы кто-то с прямыми руками посмотрел и переделал? Автор модуля на issue не отвечает.

Dmitry
27.03.2018
09:57:08

Dok
27.03.2018
09:58:26
А как подключаешься по ssh? С использованием ~/.ssh/config?

Sergey
27.03.2018
09:59:06
ну и использование учётки root?...

Dmitry
27.03.2018
10:01:05

Денис
27.03.2018
10:03:40
В роли указан ключь?

Dok
27.03.2018
10:04:00
Чёт не пойму, сначала 10.6.7.1, потом, 10.6.3.1, теперь 10.6.10.1
Добавь в тот файл
Host test
HostName 10.6.10.1
User root
И укажи в хостах ансибла test

Google

Денис
27.03.2018
10:05:29
Можно еще так в инвентори
ansible_user=root
ansible_ssh_port= 22
ansible_connection= ssh
Можно еще ключь
ansible_ssh_private_key_file=

Dmitry
27.03.2018
10:11:04

Dok
27.03.2018
10:11:35
И, кстати, можешь потом ссашаться уже через команду
ssh test

Денис
27.03.2018
10:14:31
ansible_user=root это в переменные ансибла или так как сказал @Dok2d в .ssh/config добавить пользователя

Dmitry
27.03.2018
10:15:54

Dok
27.03.2018
10:17:03
Ну настроенный конфиг это, само по себе уже очень удобно

Алексей
27.03.2018
10:37:38

eucariot
27.03.2018
10:38:06
Исправленный под другим именем?

Алексей
27.03.2018
10:38:15
нет под тем же именем
создай папку в корне плейбука
положи туда исправленный модуль

eucariot
27.03.2018
10:38:38
Так я хочу заапстримить)

Алексей
27.03.2018
10:38:53
все хотят. список пулреквестов видишь да :)

Ievgen
27.03.2018
10:52:39
)

Sergey
27.03.2018
10:57:32

Ievgen
27.03.2018
10:57:57
это да
ну короче если кто то хочет сделать так:
{% for cl in clusters_config|json_query("[].cluster")|unique %}
<{{ cl }}>
{% for sh in clusters_config|json_query("[?cluster=='" + cl + "'].shard_id")|unique %}
<shard>
{% for replica in clusters_config|json_query("[?(cluster=='" + cl + "' && shard_id=='" + sh + "')]") %}
то так можно

Google

Sergey
27.03.2018
11:00:57
? в общем да, но это же ты кусок шаблона написал ?
а я писал про то, что это вот всё можно прямо в var.yml вкарячивать

Ievgen
27.03.2018
11:01:24
ну да, я знаю )

Денис
27.03.2018
11:03:37

Ievgen
27.03.2018
11:03:59
[ ]
только []
ну без пробела

Денис
27.03.2018
11:04:28
Надо же ))

Ievgen
27.03.2018
11:04:32
json_query("[].cluster")

Алексей
27.03.2018
11:14:43
json_query сильная магия

Ievgen
27.03.2018
11:57:56
очень

Dok
27.03.2018
12:01:47
А как добавить записи в крон без ковычек?
Например,
cron: name=SHELL env=yes value=/
bin/bash
Добавляет
SHELL="/bin/bash"

Ievgen
27.03.2018
12:04:43

Dok
27.03.2018
12:05:02
непривычно чёт

Ievgen
27.03.2018
12:06:38
ну сделай файл test.sh:
#! /bin/bash
SHELL="/bin/bash"
echo $SHELL
и /bin/bash test.sh
нормально все, не заморачивайся

Dok
27.03.2018
12:07:36
Уделал)

Alexey
27.03.2018
14:28:09
Коллеги, есть нужда выполнить задачу единажды на каждом сервере (после разворачивания машины хочу запускать yum update). Как это можно реализовать?
run_once запускает только на одном хосте задачу, а мне надо, чтобы задача выполнялась на всех. Единственный выход который придумал - создавать файл, при наличии которого Ansible будет понимать, что таск уже запускался

Алексей
27.03.2018
14:29:01
yum name=* state=latest
не выдумывайте граблей

Google

Alexey
27.03.2018
14:30:44
не выдумывайте граблей
Он же будет каждый раз выполняться при запуске плейбука. У нас сейчас так и я мелкие проблемы получаю с версиями пакетов на средах

Vadim
27.03.2018
14:31:21
"единожды" == в рамках плейбука или в рамках жизни сервера?
ну раз не хотите строгого списка пакетов, которые ставить (== идемпотентность), то token file - это решение

Alexey
27.03.2018
14:32:25

Vadim
27.03.2018
14:33:10
В рамках жизни сервера
энсибл о таком не знает. В виде альтернативы - сохранять в факт, но тогда их надо хранить только на сервере, со всеми вытекающими

Алексей
27.03.2018
14:34:19
флаговый файл да.

Dok
27.03.2018
14:35:02
Или после апдейта обнулять source.list))

Алексей
27.03.2018
14:35:26
ой давайте не будем про плохие практики

Admin
ERROR: S client not available

Pavel
27.03.2018
14:39:59
может я рукожоп, но у меня для таких "новых" хостов отдельная группа, при создании - я его туда добавляю, после накатки - удалаю
никакой автоматизации

Алексей
27.03.2018
14:40:30
надо меньше плохих практик
обновления пакетов на сервере мастхев.
выключать обновления на сервере — путь к сломаному серверу
процесс в котором нельзя обновлять пакеты сломан изначально.

Salem
27.03.2018
14:42:18
Сделай отдельную роль с обновлением пакетов
и запускай когда надо
то есть плейбук

Ievgen
27.03.2018
14:44:47
я бы автоматизировал сборку образа (если речь о vm) и запихнул бы это при сборке, после этого - name: packet state: present и как сайд эффект name: packet-cool.version-1.el7 state: present - апгрейднется если установлена версия ниже чем указано.

Salem
27.03.2018
14:45:28
ну это тоже, да. Если облако

Albert
27.03.2018
14:45:51
Кстати про сбор образов.. Кто нить собирает ансиблом образ на опенстак?

Google

Salem
27.03.2018
14:46:34
пакер

Ievgen
27.03.2018
14:46:42
https://www.packer.io/docs/builders/openstack.html
с языка снял
а там хоть ансиблом хоть чем угодно
https://www.packer.io/docs/provisioners/ansible-local.html
или ремоут

Andrey
27.03.2018
15:12:41
жесть
ubuntu 18.04 LTS
aim@aim-virt:~$ apt show ansible
Package: ansible
Version: 2.3.1.0+dfsg-2
Priority: optional
Section: universe/admin
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Harlan Lieberman-Berg <hlieberman@debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
...

Denis
27.03.2018
15:16:54
/rmkb@remkeybot

Dok
27.03.2018
15:18:08

Andrey
27.03.2018
15:18:14
угу

Dok
27.03.2018
15:18:48
Ну, это норма иметь в дефолтных репозиториях старые версии
На 16.04 вообще
Version: 2.0.0.2-2ubuntu1

Andrey
27.03.2018
15:19:34
и это была современная версия на момент выхода

Алексей
27.03.2018
15:20:16
есть версия что старше 2,3 ансибл сломан

Dok
27.03.2018
15:21:07

Алексей
27.03.2018
15:22:05
2.5 еще больше ппц. сломать наследование тегов и бекама это ад треш и писец.

Vadim
27.03.2018
15:23:31
тэги нинужны. А как сломали become?

Ievgen
27.03.2018
15:23:31
2.5 еще больше ппц. сломать наследование тегов вот оно что