@pro_ansible

Страница 258 из 625
Vasiliy
14.08.2017
08:27:34
дано: 3 сервера(адреса в итоге будут динамические, т.е. список будет формироваться перед каждым запуском), 6 архивов(пронумерованы arch1, arch2 ...). Надо: закинуть по 2 архива на сервер и провести некоторые дествия с ними. Сервер 1 - архив 1 архив 2, сервер 2 - архив 2 архив 3 ... Подскажите, пожалуйста, как это ансиблом сделать? Что-то не пойму как подступиться.

Evegeniy
14.08.2017
08:43:09
Во первых, динамические - это какого вида?

Совсем динамические или они за каким то хостом?

Вообще нужен какой-нибудь сервис дискавери вроде консула, откуда сможешь вытаскивать хост серверов

Google
Evegeniy
14.08.2017
08:44:43
Каждому серверу можешь host_vars

Назначить

И прописать там массив архивов

Vasiliy
14.08.2017
08:51:38
список будет формироваться до запуска ансибла. Наверное тут это не очень важно. Вопрос как сделать по два архива на сервер. Сервер 1 - архив 1 архив 2, сервер 2 - архив 3 архив 4, сервер 3 - архив 5 архив 6.

iF
14.08.2017
08:52:48
Евгений правильно направил в host_vars, там можно каждому узлу индивидуально прописать

Vasiliy
14.08.2017
08:53:53
ага. Спасибо.

Anatoly
14.08.2017
08:55:10
запаковать архив в соответствующи рпм или деб прописать постинсталл и устанавливать соответствующие пакеты на соответствующие сервера и не возится с архивами

iF
14.08.2017
08:56:05
Я придираюсь, понятно, но вот не гибко и ансамбля нет )

Вернее не так, тогда ансамбль нафиг не нужен

Anatoly
14.08.2017
09:01:54
Я придираюсь, понятно, но вот не гибко и ансамбля нет )
вполне себе гибко. те люди которые используют что то за пределами деба или рпма таки умеют ждать ебилдов или собирать свои пакеты из аура без дополнительных вопросов. ансамбль тут нужен как конфиг менеджмент. это то чем он призван был заниматься с самого начала.

iF
14.08.2017
09:03:00
Убедительно )

Google
Ivan
14.08.2017
13:35:20
Господа, доброго времени суток. У кого есть немножко терпения и желания помочь?

Смысл следующий: Имею некую сеть с роутерами/коммутаторами. Их очень дофига и описать все не могу

Необходимо перебором 10.0.[0:255].[254] заходить на каждый по ssh и выполнять скрипт

И вот я сижу и туплю

Потому что для микротов модуля нет

и что то оно совсем не хочет

lastsky
14.08.2017
13:38:03
использовать with_sequence

http://docs.ansible.com/ansible/latest/playbooks_loops.html#looping-over-integer-sequences пример

iF
14.08.2017
13:50:33
А скрипт сильно сложный?

lastsky
14.08.2017
13:51:02
тут with_sequence как я понимаю должен перебирать ip адреса

можно конечно взять nmap и составить inventory, но задача так не ставилась

iF
14.08.2017
13:51:29
Я к тому, не проще ли python + paramiko?

если тольок скрипт

Ivan
14.08.2017
13:51:58
А скрипт сильно сложный?
вообще - 4 команды

последовательно надо выполнить на каждом)

iF
14.08.2017
13:52:57
Ну просто под ансамбль модуль по первой писать непонятно, а если просто 4 команды, я бы на питоне перебор в сети сделал и по ssh 4 команды впулял

Anatoly
14.08.2017
13:53:18
а что в сетях так и не придумали центральной менеджмент консоли?

iF
14.08.2017
13:53:21
это если не надо больше ничего

Anatoly
14.08.2017
13:53:49
я слышал убкт имеют что то подобное

Gleb
14.08.2017
13:53:56
Потому что для микротов модуля нет
у микротиков есть ссш, ансибл создан для ссш

Google
Gleb
14.08.2017
13:53:59
продолжать?

Ivan
14.08.2017
13:54:10
я слышал убкт имеют что то подобное
У них есть контроллер, да. Но он на джаве)

Gleb
14.08.2017
13:54:25
а чего точно то хочется?

Gleb
14.08.2017
13:54:48
вот туда и хочу, да
https://mum.mikrotik.com//presentations/RU16/presentation_3841_1476092869.pdf

Ivan
14.08.2017
13:54:53
и?
и он начинает очень сильно задыхаться, если у тебя более 500 устройств

Gleb
14.08.2017
13:54:57
ссылка на репку в конце

Ivan
14.08.2017
13:55:02
И на репке был

Sergey
14.08.2017
13:58:56
https://mum.mikrotik.com//presentations/RU16/presentation_3841_1476092869.pdf
O_o на мой вкус стоило бы модуль свой написать под это дело, да и всё

Anatoly
14.08.2017
13:59:10
и он начинает очень сильно задыхаться, если у тебя более 500 устройств
завести машинку с поболее памяти в таком случае не помогает?

Anatoly
14.08.2017
13:59:40
мммм, нет
а ну ок.

Ivan
14.08.2017
13:59:52
это юбики)

Gleb
14.08.2017
13:59:59
ты про юнифай или про эйрконтрол?

Ivan
14.08.2017
14:00:12
Да и не о юбиках вообще речь)

Anatoly
14.08.2017
14:00:50
ну, я не в курсах какая разница между убкт и микротик просто в 21 веке сети все еще живут как 70е и ничего не меняется такое чувство

Google
Gleb
14.08.2017
14:00:52
так у некротика тоже есть контроллер

Anatoly
14.08.2017
14:01:36
чо?

Gleb
14.08.2017
14:01:55
https://www.youtube.com/watch?v=giC3-LnnV4c

Anatoly
14.08.2017
14:02:14
а ну ок.

Ivan
14.08.2017
14:02:30
Ivan
14.08.2017
14:43:43
Господа, а как указать юзера для ssh?

ansible_ssh_user чёт не хотит

Anton
14.08.2017
14:45:42
там по другому

ща

вот кароч

http://docs.ansible.com/ansible/latest/intro_networking.html

надо var переменные создавать

Ivan
14.08.2017
14:55:11
а в yml нельзя разве обозначить?

--- - hosts: test user: admin gather_facts: no connection: local roles: - test-script

типо вот такого

Anton
14.08.2017
14:56:05
это тоже yml, только не в role

Ivan
14.08.2017
14:56:54
так вот тут user'а можно указывать или нифига?

Я вроде указал

запускаю

Google
Anton
14.08.2017
14:57:09
т.е. создаёшь папку roles в ней папку vars в ней файл main.yml в нём что то типа того cli: host: "{{ inventory_hostname }}" username: "{{ username }}" password: "{{ password }}" transport: cli

Anton
14.08.2017
14:58:17
затем в папке roles создаёшь папку task в нём файл main.yml в котором делаешь примерно так - name: test ios_command: commands: show version provider: "{{ cli }}"

почему CLI?
это просто имя, которое будет в строке provider передаваться

это один из вариантов, можно и по другому делать

Ivan
14.08.2017
14:59:39
А если я просто в самом плейбуке в main.yml укажу не переменными, а сразу как надо?

допустим, предположим

--- - name: Upload init-script command: "sshpass -p '{{ansible_ssh_pass}}' scp -P {{ansible_ssh_port}} -o StrictHostKeyChecking=no -o NumberOfPasswordPrompts=1 roles/init/files/init-script.rsc {{ansible_user}}@{{inventory_hostname}}:/init-script.rsc" - name: Run init-script command: "sshpass -p '{{ansible_ssh_pass}}' ssh -T -p {{ansible_ssh_port}} -o StrictHostKeyChecking=no -o NumberOfPasswordPrompts=1 {{ansible_user}}@{{inventory_hostname}} '/import file=init-script.rsc'"

я вместо {{ansible_user}} указываю сразу юзера

взлетит?

Anton
14.08.2017
15:01:19
ну эту переменную надо где то создать

Ivan
14.08.2017
15:01:46
чёт вроде просто но котелок уже не варит под конец рабочего дня

Anton
14.08.2017
15:01:59
с логикой ансибла это нормально

вот тут можно посомтреть примеры реализаций

https://github.com/ansible/ansible-examples

Ivan
14.08.2017
15:02:35
А если запускать плейбук с параметром -u, например?

Anton
14.08.2017
15:03:19
я так вначале пытался

у меня не запахал

Ihor
14.08.2017
15:20:43
Помогите с таким вопросом. Сейчас я добавляю ключ ссш вручную. Как это делают через ansible?

Желательно пример с таском

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