Docker images with ansible playbooks

Salut,

Setup-ul in momentul de fata e prin vagrant provisionat cu ansible.

Vrem sa modificam si sa facem imagini Docker numai ca deja retele pentru imaginea de DB cat si cea de Webserver sunt facut in ansible.

Am incercat :

FROM ansible/ubuntu14.04-ansible:stable

# Add playbooks to the Docker image
ADD . /var/www/vagrant
WORKDIR /var/www/vagrant

# Run Ansible to configure the Docker image
RUN ansible-playbook web.yml

# Other Dockerfile directives are still valid
EXPOSE 22 3000 80

iar la docker build -t first-test .

Imi da eroare : FATAL: no hosts matched or all hosts have already failed -- aborting

desi in web.yml exista hosts : all - cel default

Ma poate ajuta careva?

Merci,
Raluca

1 Like

Scăpați de ansible cu docker, nu mai e nevoie de el. Nu folosi ubuntu 14.04, nu ai suport http2 pe chrome din cauza openssl la serverul web.

Alegeți ceva OS și panou pentru deploy-ul stack-urilor, eu recomand Docker Swarm, Rancher (e frumușel și avansat), cel mai simplu ar fi http://portainer.io.

@isti37, deseori contextul impune anumite conditii si ii nevoie mergi pe ce ai, chiar daca nu-i cea mai “crestineasca” abordare.

1 Like

@raluka, ma gandesc ca ai incercat niste search-uri. Primele rezultate pe gogu arata rezolvari simple ale situatiilor similare.

1 Like

@raluka nu am lucrat cu Ansilbe în docker (eu folosesc docker-compose), dar ce pot să-ti recomand este să comentezi linia cu comanda run ca să treci de build, dupa care să deschizi bash pe container și să rulezi comanda manual (e interactiv și poti să faci debugging să afli de ce crapă): docker exec -it <container> bash

1 Like

pai deja primele pagini de pe un google search am cam incercat, problema e ca ori imaginea de ubuntu cu ansible e fututa , ca sa ma exprim cu cuvintele mele , si am inecrcat sa fac imaginea de la zero, iar cand rulez retea de ansible pe imaginea aia cica nu am hosts in /etc/ansible/hosts desi il pun acolo si in fisieru de ansible ii dau ala default hosts: all care cica e default … mai incerc poate ceva aliniere a planetelor o sa ma ajute :d :d

1 Like

si eu folosesc tot docker- compose dar am nevoie acuma de a face o imagine simpla pentru web application care se creea inainte din vagrant file cu reteta de ansible, de aia am reteta de ansible ca nu imi fac containerul si pe urma sa fac un ssh pe el si sa incep sa rulez acolo chestii … atunci nu mai e automatizare :slight_smile: … dar te inteleg ce zici

1 Like

Dispare automizarea, dar procesul asta ar trebui să îl faci doar până îi dai de cap, dupa aia ar trebui să meargă out of the box.

Ca idee, în docker, fiecare container are o singură responsabilitate. Eu pe setup-ul am:

  • container 1: nginx
  • container 2: mysql
  • container 3: php-fpm
  • container 4: mailhog

Parte de configurare o fac din compose pentru că e mai comod așa. Ansible sau Salt sau alte aplicații de genul sunt mult mai avansate.
Ca idee, eu aș folosi o aplicație de automatizare precum Ansible în afara containerului, pentru ca creea și genera imaginile și pentru a gestiona containerele de care am nevoie (în felul astă nu aș mai avea nevoie de compose).