gabriel e7f1f795ef Se agregaron las keys de bitbucket y gogs 7 years ago
..
keys b990f73ad9 agregue keys 7 years ago
mysql 80cfe81ed3 correcciones 7 years ago
src e7f1f795ef Se agregaron las keys de bitbucket y gogs 7 years ago
Dockerfile f093f661c4 docker image 7 years ago
ONU.json 4a26a8be41 Avances importador 7 years ago
cmd.php e7f1f795ef Se agregaron las keys de bitbucket y gogs 7 years ago
composer.json ea5574beb2 Merge master 7 years ago
composer.lock 9b0f2d2022 Merge master 7 years ago
composer.phar bb32b58a95 Reformateo de tools/src/DockerInventory-GetSource-MergeHostFile-Release 7 years ago
docker-compose.service 06957de177 instalación debe ir en /opt/flowdat 7 years ago
execute.sh dfef93c4b2 Correciones varias de la instalacion 7 years ago
grafana.env 26b9e06218 agregue running env para grafana, junto con su grafana.env 7 years ago
mysql_scripts.sql 2f3613760a Agregado del usuario interno 7 years ago
playbook.yml 08583523e2 mejoras menores 7 years ago
readme.md 63ad2eaeca errores 7 years ago
repositories.ini e7f1f795ef Se agregaron las keys de bitbucket y gogs 7 years ago

readme.md

#Requerimientos

  • curl
  • git
  • python
  • pip
  • docker
  • docker-compose
  • php/composer

#Instalación de requerimientos:

curl

apt-get update && apt-get install curl git python

pip

# descargo el  archivo get-pip.py desde una url
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
sudo usermod -aG docker iksop

# con root
curl -fsSL get.docker.com | sh
usermod -aG docker iksop

docker-compose

sudo 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 /opt/flowdat  

####. Entrar la directorio.

cd /opt/flowdat

####. Descargar el fuente de instalación.

# en código se descarga en el directorio actual
git clone git@bitbucket.org:ikflowdat/installer.git .

####. Entrar la directorio tools.

cd tools

####. Construir el docker que se utilizará durante la instalación.

docker build --build-arg DIR_INSTALL=$(pwd) -t dind .     
# --build-arg: es la forma de pasarle parámetros al docker.
# -t: es el nombre que tendrá el contenedor.
# .: 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.

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.

docker run -it -v /opt/flowdat:/opt/flowdat -v /var/run/docker.sock:/tmp/docker.sock dind make:install /opt/flowdat --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 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.
# galvez: nombre de la empresa que estoy instalando.
# --domain=galvez: es el nombre del dominio que se utilizará. El dominio final quedaría base.galvez.flowdat.com, ftth.galvez.flowdat.com, etc.
# para mas informacion ejecutar "docker run -it -v $(pwd):$(pwd) -v /var/run/docker.sock:/tmp/docker.sock dind make:install --help"

####. Una vez dentro del docker entramos al directorio de instalación.

cd /opt/flowdat

####. Obtener los fuentes desde bitbucket

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 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.
# galvez/git.ini: es el nombre del archivo que posee los directorios a descargar.
# para mas informacion ejecutar "docker run -it -v $(pwd):$(pwd) -v /var/run/docker.sock:/tmp/docker.sock dind get:source --help"

####. Renombramos los archivos innecesarios para el nginx.

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 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.
# galvez: nombre de la empresa que estoy instalando.            

####. Entramos al docker para correr ansible y terminar la configuración

docker run -it -v $(pwd):$(pwd) -v /var/run/docker.sock:/tmp/docker.sock dind bash
# 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 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.
# bash: significa que se ejecutará un bash.

####. 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"
# 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
echo "deb-src http://ftp.us.debian.org/debian/ jessie-backports main" >> /etc/apt/sources.list
# actualizo la version del kernel
apt-get update ; apt-get install -t jessie-backports linux-image-amd64