installerSupport.sh 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456
  1. #!/usr/bin/env bash
  2. #################################################################
  3. # COLORS
  4. BOLD="\e[1m"
  5. RED="\033[0;31m"
  6. GREEN="\033[0;32m"
  7. BLUE="\033[0;34m"
  8. NOCOLOR="\033[0m"
  9. bitbucketid_rsa="-----BEGIN RSA PRIVATE KEY-----
  10. MIIEpAIBAAKCAQEAsCo4Xa/fLaryiZt6igRK1IPNJsKeDLWBN6CWrv3TQ2iMcwE1
  11. zhTTX115N+KngVN8p1v5VrSMHKpvyXQDZPG/FJnWm5ry75qSYTmEtY8nfRsGAbwT
  12. i4swY+4jqrH1RRjbuVMsXPGjFX34SZTTJEl8ouVAFy/7HR+ODUe2+enWVnaouhVs
  13. Xj+bW2u7/dV1kZctFa5g5iV3hqGH32dBME5ztg4Fh7fAxkRTiJl+NBI7/LIdv9dl
  14. qmtDAdNdRqaI1dBpy8sHyZhRfjPeVbhdKsjE5IBhDLlYzyxK5FC41us08VCdq+M1
  15. 1qVzIVM61PBosW5NfwlrRgLDPEXkazUdhJO6YwIDAQABAoIBAFEf4D0klH4PTwmX
  16. k+Ki/2LGH19OGEJ6Azt+tGV5diSArMz5LbHtXTl5bi0SL1ka/TiE3lnTYwKAamI3
  17. DqkZuojeHzohLOayI96qAjcp6WFvZGDAH7APNQWP0NT2hqB/RhAeATv7+sIW9JPN
  18. +T2oqcDKGa2T5uwOb/glolmMGaxOzNfAFAgnD7p7cnR0yijW5t3bc4q0sOFu/H3N
  19. jYsAqvMu6Nkpt9hjlu42x5Muwj9YeKwpZoE1sno62JeQFZo7nO7DrOrE7DOENoWV
  20. PMDxs8Hz0SRQlZcJn2I/W9wX8A8gCAWGhbAtUGQkS8gCaMp0dOcxoV3EttriQgtU
  21. X1oUwIECgYEA2Vge4E8E53BzLGTk8sozn1qteYn3cLGgJgC78MEzZN/G57DxVbC9
  22. ntlSlYaYLlaPlSlNzZyG0s3UhpPY7YgP9srpohfPyXvb0ycfsGYMOcRNjVwdi2ap
  23. dPiG+p9vLSG3raNoeTxDEtjFZz1EM1rQECx2N40JwIuzeM2g+kE0JjMCgYEAz38r
  24. NTs1wASG7Bc7geIDxb34PWM8Nnw/DN57ceJP+Miwq/hYAJg6eK57ar9n44Y3xf7a
  25. mHkkgBU1vzuIyYfC5jVut6XkbialLsJUHfCNi3fPDBR7sEy6soiN34GoGp2vnCVD
  26. pDf2aCSMeFGfgwe4imFHbqE0R87cnet+q+CjCxECgYA8EbfO5OgFEzYxwdzpIWtt
  27. EoG5gqEpu134wuEupCcRLSvrIyNAPK3btlK10tJClFfwsM65EhbNMmgXncspsx4+
  28. Zkx2KUCbfij+TeTbOwkL+i448ImV2pThKEMeB2yRu6zpR617PGWJUvIUG4G689Fn
  29. dvJhXhCg77t1mtdv8w93swKBgQCIxor0y9LigBlwBuBy/Uj/T/oSfRdz0vK8yOsW
  30. ZtfQZnoO4eUgfzgL1PgFpaYVlKOvIA938mLdCx4isFu6fIM8vHv/EptBALhh2jcY
  31. hTjIdnFExTvDOtDWXq0mZ5En+kmH5Ahyd3E1tOHjbep3tN8wWG99vUV5ECLc9h7J
  32. rYnMAQKBgQDQ/JiBT7ygfzAblxPnq5Dnr52C3CFTE57GNA8FIEx+On6FdtVDRM0g
  33. cNjoc2e+2MfbaJXFAuMvXDvzb2qxrHgf2TosxeuPTg79iYOfWMU8G62i/v0wPr1M
  34. 0Cj2hszJg4H0dMQPS0kDmO6mZmt6FB4E2gItmeBlTGfMwdJpaQC4rw==
  35. -----END RSA PRIVATE KEY-----"
  36. ###################################################################
  37. GITLAB_HOST_SSH=$(ssh-keygen -F gitlab.com | wc -m)
  38. if [ "$GITLAB_HOST_SSH" = "0" ];
  39. then
  40. ssh-keyscan -H -p 22 gitlab.com >> ~/.ssh/known_hosts
  41. fi
  42. ###################################################################
  43. ROOT=$(id -u)
  44. if [ "$ROOT" != "0" ];
  45. then
  46. echo -e "${RED} Este comando debe ejecutarse como root.${NOCOLOR}"
  47. exit 0
  48. fi
  49. ###################################################################
  50. DEVELOP=0
  51. CLIENT=""
  52. HELP=0
  53. ANSIBLE=0
  54. for VAR in "$@"
  55. do
  56. KEY="$(cut -d'=' -f1 <<<"$VAR")"
  57. VALUE="$(cut -d'=' -f2 <<<"$VAR")"
  58. if [ "$KEY" = "--develop" ];
  59. then
  60. DEVELOP=1
  61. fi
  62. if [ "$KEY" = "--help" ] || [ "$VAR" = "-h" ];
  63. then
  64. HELP=1
  65. fi
  66. if [ "$KEY" = "--ansible" ];
  67. then
  68. ANSIBLE=1
  69. fi
  70. if [ "$KEY" = "--cliente" ];
  71. then
  72. CLIENT=${VALUE}
  73. fi
  74. done
  75. if [ "$HELP" = "1" ];
  76. then
  77. echo -e "Comando para instalar flowdat."
  78. echo -e "Si no se pasan parametros se ejecuta el script completo preguntando los datos necesarios"
  79. echo -e "Parametros:"
  80. echo -e " --develop Si es 1, instala el codigo fuente. ${RED}${BOLD}NUNCA UTILIZAR EN CLIENTES${NOCOLOR}."
  81. echo -e " --cliente Nombre del cliente que va a instalar. Se utiliza como dominio."
  82. echo -e " --ansible Ejecuta la linea del ansible. Debe pasar el directorio donde se encuentra el playbook."
  83. exit 1
  84. fi
  85. ###################################################################
  86. fcGetYesNo() {
  87. while true;
  88. do
  89. read VALUEYESNO
  90. if [ "$VALUEYESNO" = "" ] || [ "$VALUEYESNO" = "y" ] || [ "$VALUEYESNO" = "Y" ] || [ "$VALUEYESNO" = "yes" ] || [ "$VALUEYESNO" = "YES" ];
  91. then
  92. VALUEYESNO=1
  93. return
  94. fi
  95. if [ "$VALUEYESNO" = "n" ] || [ "$VALUEYESNO" = "N" ] || [ "$VALUEYESNO" = "no" ] || [ "$VALUEYESNO" = "NO" ];
  96. then
  97. VALUEYESNO=0
  98. return
  99. fi
  100. done
  101. }
  102. fcCheckExecution () {
  103. if [ $? -eq 0 ];
  104. then
  105. return
  106. else
  107. echo -e "${RED}Algunos comandos no se ejecutaron correctamente.${NOCOLOR}"
  108. exit 0
  109. fi
  110. }
  111. ###################################################################
  112. DIRINSTALLDEFAULT="/opt/flowdat"
  113. FILEANSIBLE="#!/bin/bash\neval \$(cat mysql.host.env running.env) ansible-playbook -i inventory.ini -u root playbook.yml "
  114. ###################################################################
  115. DIRINSTALL=${DIRINSTALLDEFAULT}
  116. echo -e "Ingrese el directorio absoluto de instalacion: (default: ${BOLD}${DIRINSTALLDEFAULT}${NOCOLOR})"
  117. read DIRINSTALL
  118. if [ "${DIRINSTALL}" = "" ];
  119. then
  120. DIRINSTALL=${DIRINSTALLDEFAULT}
  121. fi
  122. mkdir -p ${DIRINSTALL}
  123. if [ "$ANSIBLE" = "0" ];
  124. then
  125. ###################################################################
  126. if [ "$CLIENT" = "" ];
  127. then
  128. echo -e "Ingrese el nombre del cliente para la instalacion. Ej.: ${BOLD}galvez${NOCOLOR}"
  129. read CLIENTNAME
  130. else
  131. CLIENTNAME=${CLIENT}
  132. fi
  133. DOMAINNAME="flowdat.net"
  134. echo -e ""
  135. echo -e ""
  136. echo -e "Las url seran ${GREEN}base.${CLIENTNAME}.${DOMAINNAME}${NOCOLOR}. Si esto NO es correcto aborte la ejecucion con ctrl+c"
  137. echo -e ""
  138. echo -e ""
  139. echo -e "${BLUE}###############################################################${NOCOLOR}"
  140. ###################################################################
  141. echo -e "Instalar paquetes linux necesarios? (${BOLD}Y${NOCOLOR}/n)"
  142. VALUEYESNO=1
  143. fcGetYesNo
  144. if [ "$VALUEYESNO" = "1" ];
  145. then
  146. ## no se utiliza un && porque pueden existir error del apt en la consulta de los repo
  147. apt-get update
  148. apt-get install -yq curl git python
  149. curl https://bootstrap.pypa.io/get-pip.py | python
  150. pip install -U pip setuptools
  151. curl -fsSL get.docker.com | sh
  152. pip install docker-compose==1.22
  153. fcCheckExecution
  154. fi
  155. fcCheckExecution
  156. ###################################################################
  157. echo -e ""
  158. echo -e ""
  159. echo -e ""
  160. echo -e ""
  161. echo -e "${BLUE}###############################################################${NOCOLOR}"
  162. echo -e "Ingresando al directorio ${BOLD}${DIRINSTALL}${NOCOLOR}"
  163. cd ${DIRINSTALL}
  164. fcCheckExecution
  165. ###################################################################
  166. BRANCH=""
  167. echo -e "Ingrese la rama a instalar. (default: ${BOLD}latest${NOCOLOR})"
  168. read BRANCH
  169. if [ "$BRANCH" = "" ];
  170. then
  171. BRANCH="latest"
  172. fi
  173. fcCheckExecution
  174. ###################################################################
  175. DOCKERIMAGEINSTALLERBASE="docker.infra.flowdat.com/fd3/installer:$BRANCH"
  176. DOCKERIMAGEINSTALLER="dind"
  177. DOCKERMAKEINSTALL="docker run -it -v ${DIRINSTALL}:${DIRINSTALL} -v /var/run/docker.sock:/tmp/docker.sock ${DOCKERIMAGEINSTALLER} make:installImages ${DIRINSTALL} --client=${CLIENTNAME} --domain=${DOMAINNAME} --branch=${BRANCH} --develop=${DEVELOP}"
  178. DOCKERGETSOURCE="docker run -it -v ${DIRINSTALL}:${DIRINSTALL} -v /var/run/docker.sock:/tmp/docker.sock dind get:source ${DIRINSTALL}/git.ini --timeout=120"
  179. DOCKERFIXNGINX="docker run -it -v ${DIRINSTALL}:${DIRINSTALL} -v /var/run/docker.sock:/tmp/docker.sock ${DOCKERIMAGEINSTALLER} fix:nginx ${DIRINSTALL}"
  180. DOCKERSERVICE="ln -sf ${DIRINSTALL}/docker-compose.service /etc/systemd/system/docker-compose.service"
  181. ###################################################################
  182. docker pull ${DOCKERIMAGEINSTALLERBASE}
  183. docker tag ${DOCKERIMAGEINSTALLERBASE} ${DOCKERIMAGEINSTALLER}
  184. ###################################################################
  185. if [ "$DEVELOP" = "1" ];
  186. then
  187. echo -e ""
  188. echo -e ""
  189. echo -e ""
  190. echo -e ""
  191. echo -e "${BLUE}###############################################################${NOCOLOR}"
  192. echo -e "Desea crear los archivos de instalacion."
  193. echo -e "Opciones:"
  194. echo -e " Ingrese '${RED}n${NOCOLOR}' para omitir este paso."
  195. echo -e " Presionar entrer para ejecutar el comando por default: ${GREEN}${DOCKERMAKEINSTALL}${NOCOLOR}"
  196. echo -e " Puede ingresar el comando que desee ejecutar."
  197. read COMMAND
  198. else
  199. echo -e "${BLUE}###############################################################${NOCOLOR}"
  200. echo -e "Creando los archivos de instalacion."
  201. COMMAND=""
  202. fi
  203. if [ "${COMMAND}" = "" ];
  204. then
  205. eval ${DOCKERMAKEINSTALL}
  206. else
  207. if [ "${COMMAND}" != "n" ] && [ "${COMMAND}" != "N" ];
  208. then
  209. eval ${COMMAND}
  210. fi
  211. fi
  212. fcCheckExecution
  213. ###################################################################
  214. if [ "$DEVELOP" = "1" ];
  215. then
  216. eval `ssh-agent`
  217. ssh-add - <<< "$bitbucketid_rsa"
  218. echo -e ""
  219. echo -e ""
  220. echo -e ""
  221. echo -e ""
  222. echo -e "${BLUE}###############################################################${NOCOLOR}"
  223. echo -e "Ingresando al directorio ${DIRINSTALL}"
  224. cd ${DIRINSTALL}
  225. ###################################################################
  226. echo -e "Desea obtener el codigo fuente."
  227. echo -e "Opciones:"
  228. echo -e " Ingrese '${RED}n${NOCOLOR}' para omitir este paso."
  229. echo -e " Presionar entrer para ejecutar el comando por default: ${GREEN}${DOCKERGETSOURCE}${NOCOLOR}"
  230. echo -e " Puede ingresar el comando que desee ejecutar."
  231. read COMMAND
  232. if [ "${COMMAND}" = "" ];
  233. then
  234. eval $DOCKERGETSOURCE
  235. else
  236. if [ "${COMMAND}" != "n" ] && [ "${COMMAND}" != "N" ];
  237. then
  238. eval ${COMMAND}
  239. fi
  240. fi
  241. fcCheckExecution
  242. git config --global core.filemode false
  243. fcCheckExecution
  244. ###################################################################
  245. echo -e ""
  246. echo -e ""
  247. echo -e ""
  248. echo -e ""
  249. echo -e "${BLUE}###############################################################${NOCOLOR}"
  250. echo -e "Desea ejecutar el fix nginx?"
  251. echo -e "Opciones:"
  252. echo -e " Ingrese '${RED}n${NOCOLOR}' para omitir este paso."
  253. echo -e " Presionar entrer para ejecutar el comando por default: ${GREEN}${DOCKERFIXNGINX}${NOCOLOR}"
  254. echo -e " Puede ingresar el comando que desee ejecutar."
  255. read COMMAND
  256. if [ "${COMMAND}" = "" ];
  257. then
  258. eval ${DOCKERFIXNGINX}
  259. else
  260. if [ "${COMMAND}" != "n" ] && [ "${COMMAND}" != "N" ];
  261. then
  262. eval ${COMMAND}
  263. fi
  264. fi
  265. fcCheckExecution
  266. ###################################################################
  267. echo -e ""
  268. echo -e ""
  269. echo -e ""
  270. echo -e ""
  271. echo -e "${BLUE}###############################################################${NOCOLOR}"
  272. echo -e "Desea registrar el servicio de docker?"
  273. echo -e "Opciones:"
  274. echo -e " Ingrese '${RED}n${NOCOLOR}' para omitir este paso."
  275. echo -e " Presionar entrer para ejecutar el comando por default: ${GREEN}${DOCKERSERVICE}${NOCOLOR}"
  276. echo -e " Puede ingresar el comando que desee ejecutar."
  277. read COMMAND
  278. if [ "${COMMAND}" = "" ];
  279. then
  280. eval ${DOCKERSERVICE}
  281. else
  282. if [ "${COMMAND}" != "n" ] && [ "${COMMAND}" != "N" ];
  283. then
  284. eval ${COMMAND}
  285. fi
  286. fi
  287. fcCheckExecution
  288. else
  289. echo -e "${BLUE}###############################################################${NOCOLOR}"
  290. echo -e "Reconfigurando el nginx"
  291. eval ${DOCKERFIXNGINX}
  292. fcCheckExecution
  293. ###################################################################
  294. echo -e "${BLUE}###############################################################${NOCOLOR}"
  295. echo -e "Registrando el servicio de docker"
  296. eval ${DOCKERSERVICE}
  297. fcCheckExecution
  298. fi
  299. ###################################################################
  300. echo -e ""
  301. echo -e ""
  302. echo -e ""
  303. echo -e ""
  304. echo -e "${BLUE}###############################################################${NOCOLOR}"
  305. echo -e "Creando el directorio letsencrypt"
  306. mkdir -p ${DIRINSTALL}/letsencrypt
  307. mkdir -p /tmp/letsencrypt
  308. echo -e "Copiando archivos necesarios al directorio temporal"
  309. docker run --name dind_tmp dind bash /bin/true
  310. docker cp dind_tmp:/opt/installer/tools/letsencrypt/flowdat_deploy.sh /tmp/letsencrypt/flowdat_deploy.sh
  311. docker cp dind_tmp:/opt/installer/tools/letsencrypt/googledns.py /tmp/letsencrypt/googledns.py
  312. docker cp dind_tmp:/opt/installer/tools/letsencrypt/key.json /tmp/letsencrypt/key.json
  313. docker rm dind_tmp
  314. echo -e "Copiando archivos necesarios al directorio letsencrypt"
  315. cp -n /tmp/letsencrypt/* ${DIRINSTALL}/letsencrypt/
  316. rm -rf /tmp/letsencrypt
  317. echo -e "Ingresando al directorio letsencrypt"
  318. cd ${DIRINSTALL}/letsencrypt
  319. echo -e "Instalando paquetes requeridos"
  320. pip install google google-cloud-dns certbot-dns-google
  321. mkdir -p /opt/flowdat/nginx/certs
  322. ###################################################################
  323. echo -e ""
  324. echo -e ""
  325. echo -e ""
  326. echo -e ""
  327. echo -e "${BLUE}###############################################################${NOCOLOR}"
  328. echo -e "Desea dar de alta los dominios?(${BOLD}Y${NOCOLOR}/n)"
  329. VALUEYESNO=1
  330. fcGetYesNo
  331. if [ "$VALUEYESNO" = "1" ];
  332. then
  333. echo -e "Ingrese la ip publica del cliente para acceder al flowdat:"
  334. read IPPUBLIC
  335. echo -e "Registrando los dominios"
  336. python googledns.py --key=key.json --action=create --client=${CLIENTNAME} --ip_address=${IPPUBLIC} --domain=${DOMAINNAME}
  337. else
  338. echo -e "${RED}SE ASUME QUE LOS DOMINIOS YA ESTAN DADOS DE ALTA${NOCOLOR}"
  339. fi
  340. fcCheckExecution
  341. ###################################################################
  342. echo -e ""
  343. echo -e ""
  344. echo -e ""
  345. echo -e ""
  346. echo -e "${BLUE}###############################################################${NOCOLOR}"
  347. echo -e "Desea crear los certificados ssl?(${BOLD}Y${NOCOLOR}/n)"
  348. VALUEYESNO=1
  349. fcGetYesNo
  350. if [ "$VALUEYESNO" = "1" ];
  351. then
  352. echo -e "Agregando el repositorio deb http://ftp.debian.org/debian stretch-backports main"
  353. echo -e "deb http://ftp.debian.org/debian stretch-backports main" >> /etc/apt/sources.list.d/certbot.debian.list
  354. echo -e "Actualizando paquetes"
  355. apt-get update && apt-get install -yq certbot -t stretch-backports
  356. fcCheckExecution
  357. echo -e "${BLUE}###############################################################${NOCOLOR}"
  358. echo -e "En caso de error con certbot y python puede correr esta linea: python -m easy_install --upgrade pyOpenSSL"
  359. echo -e "${BLUE}###############################################################${NOCOLOR}"
  360. fcCheckExecution
  361. echo -e "Ingresando al directorio letsencrypt"
  362. cd ${DIRINSTALL}/letsencrypt
  363. sed -i "s/DOMAIN_NAME_REPLACE/${CLIENTNAME}.${DOMAINNAME}/g" flowdat_deploy.sh
  364. echo -e "Generando certificados"
  365. certbot certonly --cert-name ${CLIENTNAME}.${DOMAINNAME} --dns-google --dns-google-credentials ${DIRINSTALL}/letsencrypt/key.json --server https://acme-v02.api.letsencrypt.org/directory -d "*.${CLIENTNAME}.${DOMAINNAME}" -d "${CLIENTNAME}.${DOMAINNAME}" --deploy-hook=${DIRINSTALL}/letsencrypt/flowdat_deploy.sh
  366. fcCheckExecution
  367. echo -e ""
  368. echo -e "Verificar que la siguiente línea aparezca entre las últimas a la salida del comando:"
  369. echo -e " EJECUCION MANUAL: Running deploy-hook command: /opt/flowdat/letsencrypt/flowdat_deploy.sh"
  370. echo -e "la cual indica que el hook se ejecutó. Eso significa que los certificados deberían haberse copiado a la carpeta de Nginx. Verificar con el navegador que el sitio web sea seguro."
  371. echo -e "Probar autorenovación:"
  372. echo -e " EJECUCION MANUAL: certbot renew --dry-run"
  373. else
  374. echo -e "${RED}SE ASUME QUE LOS DOMINIOS YA ESTAN DADOS DE ALTA${NOCOLOR}"
  375. echo -e ""
  376. echo -e ""
  377. echo -e ""
  378. echo -e ""
  379. echo -e "${BLUE}###############################################################${NOCOLOR}"
  380. echo -e "Desea obtener los certificados actuales?(${BOLD}Y${NOCOLOR}/n)"
  381. VALUEYESNO=1
  382. fcGetYesNo
  383. if [ "$VALUEYESNO" = "1" ];
  384. then
  385. LSCERT=`ls -td /etc/letsencrypt/archive/${CLIENTNAME}.${DOMAINNAME}/cert*.pem`
  386. LSCHAIN=`ls -td /etc/letsencrypt/archive/${CLIENTNAME}.${DOMAINNAME}/chain*.pem`
  387. LSFULLCHAIN=`ls -td /etc/letsencrypt/archive/${CLIENTNAME}.${DOMAINNAME}/fullchain*.pem`
  388. LSPRIVKEY=`ls -td /etc/letsencrypt/archive/${CLIENTNAME}.${DOMAINNAME}/privkey*.pem`
  389. for var in ${LSCERT}
  390. do
  391. LSCERT=${var}
  392. break
  393. done
  394. for var in ${LSCHAIN}
  395. do
  396. LSCHAIN=${var}
  397. break
  398. done
  399. for var in ${LSFULLCHAIN}
  400. do
  401. LSFULLCHAIN=${var}
  402. break
  403. done
  404. for var in ${LSPRIVKEY}
  405. do
  406. LSPRIVKEY=${var}
  407. break
  408. done
  409. cp -f ${LSCERT} ${DIRINSTALL}/nginx/certs/cert.pem
  410. cp -f ${LSCHAIN} ${DIRINSTALL}/nginx/certs/chain.pem
  411. cp -f ${LSFULLCHAIN} ${DIRINSTALL}/nginx/certs/fullchain.pem
  412. cp -f ${LSPRIVKEY} ${DIRINSTALL}/nginx/certs/privkey.pem
  413. else
  414. echo -e "${RED}NO SE POSEEN CERTIFICADOS PARA EL NGINX${NOCOLOR}"
  415. fi
  416. fi
  417. fi
  418. ###################################################################
  419. if [ "$DEVELOP" = "1" ];
  420. then
  421. echo -e "${BLUE}###############################################################${NOCOLOR}"
  422. echo -e ""
  423. echo -e ""
  424. echo -e ""
  425. echo -e ""
  426. echo -e "Creando archivo de ejecucion ansible"
  427. echo -e "El archivo se creara con las siguientes instrucciones"
  428. echo -e "${GREEN}${FILEANSIBLE}${NOCOLOR}"
  429. echo -e ""
  430. echo -e "Desea modificar el archivo? Default ${BOLD}NO${NOCOLOR} presione ${BOLD}enter${NOCOLOR}. En caso contrario ingrese las lineas del archivo a utilizar. "
  431. read COMMAND
  432. else
  433. echo -e "${BLUE}###############################################################${NOCOLOR}"
  434. echo -e "Ejecutando el ansible"
  435. COMANDO=""
  436. fi
  437. if [ "${COMMAND}" = "" ];
  438. then
  439. echo -e "${FILEANSIBLE}" > ${DIRINSTALL}/ansible.run
  440. else
  441. echo -e "${COMMAND}" > ${DIRINSTALL}/ansible.run
  442. fi
  443. docker run -it -v ${DIRINSTALL}:${DIRINSTALL} -v /var/run/docker.sock:/tmp/docker.sock dind ansible ${DIRINSTALL}
  444. fcCheckExecution
  445. exit 1