Lev
https://raw.githubusercontent.com/lean-delivery/ansible-role-mysql/master/molecule/default/molecule.yml я тупо спиздил отсюда. Работает 👍
образу год... https://hub.docker.com/layers/leandelivery/docker-systemd/centos7/images/sha256-07f1d240d93bcae59eb370b2bb4604a8e755463f41c11b8a234d30e586a41c8f?context=explore да и сорцов не видно.. @tgadiev можно сорцы контйенера глянуть https://github.com/lean-delivery/docker-systemd?
Lev
Почему не видно-то?
https://github.com/lean-delivery/docker-systemd/blob/centos7/Dockerfile ?
Aleksey
https://gist.github.com/freeseacher/e2e154259471a487e60506df45a6abaa
Отделение Bereke Bank
Ну и учитывая что это центось, год больше год меньше - без разницы 😂
Lev
https://gist.github.com/freeseacher/e2e154259471a487e60506df45a6abaa
pre_build_image чего в false ставишь а не свой предсобираешь?
Aleksey
контроля ради
Aleksey
я сначала prepare делал в докерфайле
Aleksey
потом понял что зря и перешел на prepare
George
Привет народ, изучаю Ansible, пишу плейбук для установки Сassandra. Вроде всё огонь, на последнем этапе хочу прописать KEYSPACE в cqlsh. Просто через командную строку это совершается в два простых этапа: 1. Прописываешь cqlsh 2. Вписываешь свой кей (вида CREATE KEYSPACE.........}; 3. exit Как правильно это описать в плейбуке ? Спасибо за ответы :)
Sebor▂▅▇█▓▒░
написать модуль
Tadeusz
cqlsh на питоне написан, поэтому - да.
George
Именно написать или есть варик, что такой уже создан ? Я буквально только начал изучать ansible)
Sebor▂▅▇█▓▒░
ты всегда можешь погуглить готовые варианты
Ждун
Ребята, давайте быть честными. Вход в ансибл простой, писать модуль это другой уровень, не всем подходит, так что не стоит быть Мураками
Tadeusz
shell тогда - довольствуйся мАлым, сын мой (ц)
George
Команда cqlsh открывает свою под консоль, в ней я ввоже поочерёдно для кея, после чего exit - всё, больше ничего не требуется
Tadeusz
ты можешь сложить че тебе надо в файл и скормить cqlsh -f file
George
собственно вопрос, как это организовать грамотно. Если в виде команды , требуется предустановка cqlsh на хост с Ansible (не проблема вообще) Проблема как это описать грамотно
Tadeusz
Ержан, проснись, это костыли)
Отделение Bereke Bank
Ты предлагаешь человеку писать модуль?)
Tadeusz
предлагаю cqlsh -e "CREATE KEYSPACE HUJPIZDA"
Отделение Bereke Bank
предлагаю cqlsh -e "CREATE KEYSPACE HUJPIZDA"
ну вот. хандлером на какую-нибудь таску, кооторая загружает нужный файл
Tadeusz
и по итогу - у тебя там хранилище целое в /root/ )
Отделение Bereke Bank
Tadeusz
задача - создать keyspace, это можно сделать через -e
George
Абсолютно верно, задача такая
George
Как грамотно отобразить её в плейбуке для меня всё ещё вопрос
Tadeusz
что именно?
Tadeusz
module shell, что там украшать )
George
лады, понял, буду разбираться)
Vlad
mylist | map('quote') | join(', ') кажется оно
mylist | map('regex_replace', '^(.*)$', '\"\\1\"') | join(', ')
Serg
предлагаю cqlsh -e "CREATE KEYSPACE HUJPIZDA"
можно еще попробовать: shell: CREATE KEYSPACE VSEMLUBVI args: executable: cqlsh
Oleg Y.
джентльмены, как принято выкручиваться из ситуации, когда ансибловому пользователю принципиально не выдают sudo nopasswd all, а только права на выполнение конкретных команд? Башсибл на shell / command, больше опций нет?
Oleg Y.
-K, --ask-become-pass ?
неа. В моей ситуации так не получается, потому что по условию задачи (которое я не сказал, сорри) любой интерактив должен быть исключён (по коммиту выполняется сборка на jenkins, которая затем триггерит ansible playbook, и он должен выполняться в максимально unattended режиме). И немного уточню вопрос. Права на беспарольное выполнение конкретных команд - есть. Хотелось бы как-то избежать бесконтрольного башсибла на shell или command.
Oleg Y.
в основном это systemctl start/stop/restart whatever.service для RHEL 7 и service whatever start/stop/restart для RHEL 6 в зависимости от собранных фактов об оси. Этом подходе мне крайне не нравится моё программирование на ансибле и невозможность использовать штатный модуль service. Ну и если я захочу сделать какой-то sanity check (проверка, установлен ли сервис, потому что по ролевой модели я его не могу ставить, это пререквизит и его устанавливают до меня), то вместо штатного service_facts придётся городить огород.
Lev
Ансибл так устроен, что с повышенными привилегиями исполняется /usr/bin/python. Если этого нет - вся «автоматизация» превращается в горку костылей.
У меня есть кейс: 1. Air gap до кастомеров 2. Мне на кастомерские серваки нельзя от слова совсем 3. На целевых серваках нет инета 4. На целевых серваках нет рута. И судо нет Выкатка автоматизируется ansible. Всякие там java, jruby, wildfly вот это все. В планах еще и aix добавить
Lev
У меня есть кейс: 1. Air gap до кастомеров 2. Мне на кастомерские серваки нельзя от слова совсем 3. На целевых серваках нет инета 4. На целевых серваках нет рута. И судо нет Выкатка автоматизируется ansible. Всякие там java, jruby, wildfly вот это все. В планах еще и aix добавить
Из нюансов вещи делаются сложнее... 1. не просто yum install, а конвенции как именовать и раскладывать артифакты 2. Хочешь апач(не спрашивайте почему) - скомпиляешь на месте.. 3. В ролях есть тэг скачать артефакты, потом с тэгом раскатить катится в проде уже
Lev
Подпишусь на тредик
Почти весь софт можно найти в стэндэлон архивах. Их и таскаем
Aleksey
Видел вариант когда чтобы это все работало с airgap притаскивется роль в которой делается локальная репа с нужным софтом
Aleksey
Ну то есть обновление через штатный aptget
Aleksey
А вся магия как обычно в скриптах миграции пакета
Aleksey
А вот пакет уже на отдельном инфра сервере. На нем же _все_ пакеты какие нужны. В ом силе системные
Lev
Видел вариант когда чтобы это все работало с airgap притаскивется роль в которой делается локальная репа с нужным софтом
Распаковал в нужную диру архив и поменял симлинк. Вот и весь апдейт. Yum/apt/yast нет прав запускать
Oleg
Всем привет) Нужна оплачиваемая помощь 1. Написание playbook для развёртывания docker-приложения на голом сервере и накатывание обновлений Из развлечений будет: - git (установка, подключение к bitbucket) - nginx (установка, конфигурация) - docker (установка, развёртывание образов) 2. Написание API для запуска playbook обновления по запросу (python3.7+, sanic) Методы я сам напишу, нужно дописать несколько функций для корректной работы с ansible playbook). Ориентировочный ценник в ЛС сразу пишите. Если есть уточняющие вопросы - задавайте )
Sergey
Похоже, что да. Во всяком случае таких объявлений тут ещё не было - только залётные предлагали периодически разное по нычкам развёртывать без ансибла.
Oleg
что значит "по запросу" ?
Дёргаешь ручку в API, происходит исполнение плейбука )
Max
Дёргаешь ручку в API, происходит исполнение плейбука )
Для этого уже придумали AWX, хотя для одного плейбука может и оверхед https://www.ansible.com/products/awx-project/faq
Oleg
Мне тут уже написали, что дёрнуть из питоновоского приложения плейбук - целый рокет сайнс на 500 баксов. Оно того не стоит, честно )
Отделение Bereke Bank
import os os.system("ansible-playbook ...") 😁
Serg
ansible-runner: https://github.com/ansible/ansible-runner
Tadeusz
угу, я на его базе делал
Tadeusz
import os os.system("ansible-playbook ...") 😁
для начала попробуй вот в подобном инвентари эдитать, теги и вары пробрасывать
Oleg
ну ты сначала попробуй, а потом говори
я не про цену исполнения, а про эффект )
Lev
API?
Use git flow & green build master Luk(c) obi van Но если серьезно то кмк оверкил это все. Если у вас на проекте есть ci прикрутите туда ansible запускать
Tadeusz
сегодня ты хочешь "дернуть простой плейбук", а завтра инвентарь налету править и скармливать переменные этим плейбукам :)
Lev
Вообще вводных не хватает на задаче
Lev
сегодня ты хочешь "дернуть простой плейбук", а завтра инвентарь налету править и скармливать переменные этим плейбукам :)
Не надо переуаложнять раньше времени. А то потом кто прддерживать будет скажет кто тут фигню нафигарил и маниакально будет узнавать домашний адрес