Browse Source

Merged in FD3-360 (pull request #22)

FD3-360 Se inician los servicios por systemctl
Guillermo Espinoza 7 years ago
parent
commit
fdb07aa76b
4 changed files with 40 additions and 19 deletions
  1. 13 0
      tools/docker-compose.service
  2. 1 1
      tools/playbook.yml
  3. 24 18
      tools/readme.md
  4. 2 0
      tools/src/Release.php

+ 13 - 0
tools/docker-compose.service

@@ -0,0 +1,13 @@
+[Unit]
+Description=Docker compose service
+Requires=docker.service
+After=docker.service
+
+[Service]
+Restart=always
+WorkingDirectory=/opt/flowdat
+ExecStart=/usr/local/bin/docker-compose up
+ExecStop=/usr/local/bin/docker-compose down
+
+[Install]
+WantedBy=local.target

+ 1 - 1
tools/playbook.yml

@@ -171,7 +171,7 @@
 
     - name: Update variable usersetting
       set_fact:
-        usersetting: "{{ lookup('file','/tmp/user_system.json')|from_json }}"
+        usersetting: "{{ lookup('file', playbook_dir+'/user_system.json')|from_json }}"
 
     - name: Create user iksop
       shell: "bin/console user:create {{ item.user }} {{ item.email }} {{ item.password }} {{ item.tenancy }} {{ item.extra }}"

+ 24 - 18
tools/readme.md

@@ -13,23 +13,23 @@
 
 ### pip
     # descargo el  archivo get-pip.py desde una url
-    curl https://bootstrap.pypa.io/get-pip.py | python 
-     
+    curl https://bootstrap.pypa.io/get-pip.py | python
+
     # actualizo pip
     pip install -U pip
 
 ### docker (Versión funcional: apt-get install docker-ce=17.10.0~ce-0~debian    - Versión con errores: 17.11 )
     # con sudo
-    curl -fsSL get.docker.com | sudo sh 
+    curl -fsSL get.docker.com | sudo sh
     sudo usermod -aG docker iksop
-            
+
     # con root
     curl -fsSL get.docker.com | sh
     usermod -aG docker iksop
-        
+
 ### docker-compose
     pip install docker-compose
- 
+
 # Pasos:
 ####. Crear un directorio para la instalación, puede ser en cualquier lugar del sistema. Tener en cuenta que en este directorio se descargará código fuente.
     mkdir flowdat  
@@ -51,17 +51,17 @@
     # .: indica que el fuente se descargará en el directorio actual.
     # para más información de los parámetros ejecutar "docker build --help
 
-####. Instalamos con composer elementos adicionales. 
+####. Instalamos con composer elementos adicionales.
     docker run -it -v $(pwd):$(pwd) -v /var/run/docker.sock:/tmp/docker.sock dind composer install     
     # --build-arg: es la forma de pasarle parámetros al docker.
     # -t: es el nombre que tendrá el contenedor.
     # para más información de los parámetros ejecutar "docker build --help"
 
-####. Crear los archivos necesarios para la instalción. Dentro del directorio actual se crea un nuevo directorio con el nombre de la empresa. 
+####. Crear los archivos necesarios para la instalción. Dentro del directorio actual se crea un nuevo directorio con el nombre de la empresa.
     docker run -it -v $(pwd):$(pwd) -v /var/run/docker.sock:/tmp/docker.sock dind make:install $(pwd)/$CLIENT --client=$CLIENT
     # docker run: ejecuta un comando sobre el contenedor.
     # -it: significa que voy a tener un tty interativo.
-    # -v $(pwd):$(pwd): monta como un volumen el directorio actual, en el contenedor bajo el mismo directario.
+    # -v $(pwd):$(pwd): monta como un volumen el directorio actual, en el contenedor bajo el mismo directorio.
     # -v /var/run/docker.sock:/tmp/docker.sock: comparte el docker.sock entre los docker's.
     # dind: es el nombre que le pusimos anteriormente al contenedor.
     # make:install: es el comando que se ejecuta dentro del docker para crear los archivos.
@@ -73,7 +73,7 @@
     docker run -it -v $(pwd):$(pwd) -v /var/run/docker.sock:/tmp/docker.sock dind get:source $(pwd)/git.ini --timeout=120
     # docker run: ejecuta un comando sobre el contenedor.
     # -it: significa que voy a tener un tty interativo.
-    # -v $(pwd):$(pwd): monta como un volumen el directorio actual, en el contenedor bajo el mismo directario.
+    # -v $(pwd):$(pwd): monta como un volumen el directorio actual, en el contenedor bajo el mismo directorio.
     # -v /var/run/docker.sock:/tmp/docker.sock: comparte el docker.sock entre los docker's.
     # dind: es el nombre que le pusimos anteriormente al contenedor.
     # get:source: es el comando que se ejecuta dentro del docker para obtener los fuentes.
@@ -84,7 +84,7 @@
     docker run -it -v $(pwd):$(pwd) -v /var/run/docker.sock:/tmp/docker.sock dind fix:nginx $(pwd)
     # docker run: ejecuta un comando sobre el contenedor.
     # -it: significa que voy a tener un tty interativo.
-    # -v $(pwd):$(pwd): monta como un volumen el directorio actual, en el contenedor bajo el mismo directario.
+    # -v $(pwd):$(pwd): monta como un volumen el directorio actual, en el contenedor bajo el mismo directorio.
     # -v /var/run/docker.sock:/tmp/docker.sock: comparte el docker.sock entre los docker's.
     # dind: es el nombre que le pusimos anteriormente al contenedor.
     # fix:nginx: es el comando que se ejecuta dentro del docker para obtener los fuentes.
@@ -99,26 +99,32 @@
     # dind: es el nombre que le pusimos anteriormente al contenedor.
     # bash: significa que se ejecutará un bash.
 
-####. Una vez dentro del docker entramos al directorio de instalación. 
+####. Una vez dentro del docker entramos al directorio de instalación.
     cd galvez
 
 ####. Corremos ansible para finalizar la configuración e instalación
     eval $(cat mysql.host.env running.env) ansible-playbook -i inventory.ini -u root playbook.yml
     # eval $(cat mysql.host.env running.env): se le pasa al ansible-playbook las variables de entorno definidas en los archivos mysql.host.env y running.env
     # -i inventory.ini: se el especifica el inventory.ini          
-    # -u root: le digo que se ejecutarán las acciones como el usuario "root" 
+    # -u root: le digo que se ejecutarán las acciones como el usuario "root"
     # playbook.yml: es el nombre del playbook a ejecutar
-   
-   
+
+### Los container se levantan por systemctl
+### Ejecutar fuera del dind
+    ln -sf $(pwd)/docker-compose.service /etc/systemd/system/docker-compose.service
+
+    systemctl enable docker-compose.service
+
+
 ## Unistalls
 #### Docker
     # con sudo
     sudo apt-get remove docker docker-engine docker.io docker-ce
-            
+
     # con root
     apt-get remove docker docker-engine docker.io docker-ce
-    
-    
+
+
 ## Kernel update
     # agrego los repositorios
     echo "deb http://ftp.us.debian.org/debian/ jessie-backports main" >> /etc/apt/sources.list

+ 2 - 0
tools/src/Release.php

@@ -297,6 +297,8 @@ class Release extends Command
             copy(getcwd() . "/playbook.yml", $dObj->dirExists()->realpath()->getPath() . "/playbook.yml");
             // copio el script de base de datos inicial
             copy(getcwd() . "/mysql_scripts.sql", $dObj->dirExists()->realpath()->getPath() . "/mysql_scripts.sql");
+
+            copy(getcwd() . "/docker-compose.service", $dObj->dirExists()->realpath()->getPath() . "/docker-compose.service");
         } catch (\Throwable $error) {
             var_dump($error->getTraceAsString(), $error->getCode(), $error->getMessage());
         } finally {