Max
они эту фичу зарелизили с месяца 2 назад вроде
Driver
кнопку нарисовали
Driver
а так давно работает же
Driver
Max
хм
Антон
Может, кто подскажет. Я собираю образ для vagrant через packer на выходе должен получиться образ .box , провизию делаю через ansible но в одной из ролей используется ansible-vault и при запуске packer build centos7.json он ругается на эту роль, что ее нельзя расшифровать. Может , кто сталкивался? virtualbox-iso: ERROR! Decryption failed ==> virtualbox-iso: Unregistering and deleting virtual machine... ==> virtualbox-iso: Deleting output directory... Build 'virtualbox-iso' errored: Error executing Ansible: Non-zero exit status: 1
Denis 災 nobody
selinux не мешает?
Антон
нет
Антон
https://github.com/mitchellh/packer/issues/555 тут надо как то хитро передать в ansible аргументы —ask-vault-pass или —vault-password-file
Oleksandr
посоны, хочу сделать выполнение таска, только если есть определённый юзер в системе. на ум приходит только дополнительный таск shel: id username register: username_is_present, а следующий таск добавить when, но получается некрасиво, потому что тогда первый таск всегда changed
Oleksandr
может можно как-то по-другому сделать?
Oleksandr
в идеале бы хотелось что-то типа этого http://docs.ansible.com/ansible/stat_module.html но для юзеров
Александр
Эм set_fact мб?
Александр
Оу, не, несу хуйню какуюто 😆
Dmitrii
А еще можно модуль свой написать
Oleksandr
А ансибла есть changed_when
Как-то не подумал про это. Спасибо, так и сделаю.
Denis
Парни, всем привет) Ещё не использовал Ansible. Кто-нибудь подружил его с CoreOS? Как сделать такой простой сценарий? 1) Зайти на список серверов 2) Поменять содержимое файла (под sudo) 3) Выполнить команду, если она успешно прошла - выполнить вторую и отправить машину на reboot
Dmitrii
1) Этого делать не надо 2) См. пункт 3 3) Написать плейбук с 3мя тасками, поменять содержимое, команда, ребут
Aleksandr
Могу точно сказать, что сначала туда нужен питон 😊 https://github.com/defunctzombie/ansible-coreos-bootstrap
Oleksandr
лучше так, да )
Dmitrii
Ansible - agentless
Denis
Могу точно сказать, что сначала туда нужен питон 😊 https://github.com/defunctzombie/ansible-coreos-bootstrap
Как-то не въехал с наскока :) 1. Есть Cloud Config - это большой такой yaml на 30+ Кб, его надо занести на сервер в /var/lib/coreos-install/user_data. 2. Затем выполнить sudo coreos-cloudinit -validate --from-file /var/lib/coreos-install/user_data. 3. И если ошибок нет, то - sudo coreos-cloudinit --from-file /var/lib/coreos-install/user_data && reboot
Aleksandr
Denis
😿
Denis
Ansible - agentless
значит некая тулза, которая делает некие манипуляции с заданными машинами?
Aleksey
нет. ансиблу тупо нужен питон на dst машине
Aleksandr
SSH
Aleksey
ансбил по ssh цепляется на dst машину. притаскивает туда нужный набор модулей питона и выполняет их питоном.
Aleksandr
Формально ты можешь не юзать модули стандартные, но тогда ты формально возвращаешься к обычному выполнению команд через ssh http://docs.ansible.com/ansible/raw_module.html
Aleksey
Денис, заюзай fabric.
Denis
Денис, заюзай fabric.
Я пока только такой fabric знаю) fabric8.io/guide/fabric8DevOps.html
Aleksey
http://www.fabfile.org/
Denis
http://www.fabfile.org/
Это что-то вроде лайт-версии Ansible (по сути)?
Aleksey
нет. это что то типа автоматизации там где по доругому не получется
Dmitry
Прочти первую страницу документации, умоляю
Dmitry
Иначе тут сейчас опять у модераторов пердаки полыхнут.
Pavel
😂
Maxim
а кто-нибудь пользовался ansible-container?
Maxim
я про это https://www.ansible.com/ansible-container
Aleksey
а кто-нибудь пользовался ansible-container?
какую задачу ты решаешь ?
Maxim
хочу чуть ci переделать - сборка, тест и деплой потом
Aleksey
а ансибл-контейнер тебе зачем ?
Maxim
ну мы такой способ поставки приложений используем
Maxim
сейчас все ансибл делает, это очень развесисто получается. И под каждый проект приходится подгонять. Это муторно выходит. ansible-container помогает именно в составлении докерфайлов и сборке их. Но я столкнулся с тем, что он не не хочет брать мой приватный реджистри - пытается все вытащить с докерхаба, задает ужасные имена для контейнеров/образов
Maxim
А ты доку к модулю docker читал?)
речь не про модуль docker. Это отдельная тулза
Max
Ну так одно дело Билд, другое дело образ выкатить
Aleksey
с этим проблем нет
как у ансибл контейнера слои получаются ?
Aleksey
это асбтрактный вопрос
Maxim
как у ансибл контейнера слои получаются ?
я так подозреваю, что аналогично - одна таска = один слой
Aleksey
а в реале ?
Aleksey
или ты еще не запилил ?
Aleksey
а что он пишет в docker history
Maxim
а в реале ?
меня остановило, что он не юзает уже собранные образы из реджистри, а лезете в докерхаб. Это вообще никуда не годится (. Каждый раз собирать все заново - непозволительно долго
Maxim
а что он пишет в docker history
сейчас попробую
Maxim
А почему у меня берет, что с моего приватного реджистри, что вообще локальные образы, а?
не знаю, именно об этом я и писал выше - что не получается у меня это. Может дело в —project BASE_PATH ? Так его особо готовить надо чтобы он понял имя не коверкал?
Anonymous
не знаю, именно об этом я и писал выше - что не получается у меня это. Может дело в —project BASE_PATH ? Так его особо готовить надо чтобы он понял имя не коверкал?
Так а почему он не берет с приватного то, если указать адрес приватного? Я знаю только одну причину почему так может быть— если в ansible прописать только имя образа, без префикса адреса реджистри.
Maxim
с префиксом пишу
Max
А там нету случаем параметра registry_path?
Maxim
там есть определение registries: {} - тоже указывал
Maxim
он еще хватает название директории в которой находится и приписывает его к имени образа - поэтому не находит их
Max
Вы тут так вкусно рассказываете, что мне весь Билд докеров переписывать придётся видимо
Max
Оно же умеет entrypoint?
Maxim
ansible-container_1 | TASK [update apt] ************************************************************** ansible-container_1 | fatal: [front]: FAILED! => {"changed": false, "failed": true, "module_stderr": "/bin/sh: 1: /usr/bin/python: not found\n", "module_stdout": "", "msg": "MODULE FAILURE", "parsed": false} ansible-container_1 | fatal: [back]: FAILED! => {"changed": false, "failed": true, "module_stderr": "/bin/sh: 1: /usr/bin/python: not found\n", "module_stdout": "", "msg": "MODULE FAILURE", "parsed": false} ansible-container_1 | fatal: [postgres]: FAILED! => {"changed": false, "failed": true, "msg": "Could not find aptitude. Please ensure it is installed."} ansible-container_1 |
Maxim
просто супер! ему еще образы подготовить надо
Maxim
https://docs.ansible.com/ansible-container/registry_auth.html отсюда инфа про указание приватного режистри не поможет?
спасибо! вы будете смеяться и кидать в меня тапками, но я с нуля все переписал и оно сработало. Лезет в приватный реджистри и берет там образ. Возможно какой то локальный глюк был. Перезагружался недавно, да и логинился в реджистри снова. Буду разбираться дальше )
Maxim
@freeseacher вот так получается: IMAGE CREATED CREATED BY SIZE COMMENT 903b50baf39c 5 minutes ago sh -c while true; do sleep 1; done 886.1 MB Built using Ansible Container 970633036444 4 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B <missing> 4 weeks ago /bin/sh -c #(nop) LABEL name=CentOS Base Imag 0 B <missing> 4 weeks ago /bin/sh -c #(nop) ADD file:44ef4e10b27d8c464a 196.7 MB <missing> 8 weeks ago /bin/sh -c #(nop) MAINTAINER https://github.c 0 B
Aleksey
понятно...
Aleksey
я бы такой контейнер увидев в паблике не стал бы стаивть...
Aleksey
а поскольку мы делаем публичный проект - ансибл контейнер оказывается невоспроизводим. мне он не подойдет