123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310 |
- ---
- - name: Launch docker for mysql database. Tag=start_mysql
- hosts: 127.0.0.1
- connection: local
- tags: start_mysql
- tasks:
- - name: Docker mysql up
- command: "docker-compose up -d mysql"
- - name: Configure mysql database. Tag=configure_mysql
- hosts: mysql
- connection: docker
- gather_facts: no
- tags: configure_mysql
- tasks:
- - name: Wait for mysql be ready
- wait_for:
- host: 127.0.0.1
- port: 3306
- state: started
- delay: 5
- connect_timeout: 15
- timeout: 360
- - name: Create database fd_session
- mysql_db:
- name: fd_session
- login_password: "{{ lookup('env', 'MYSQL_PASSWORD') }}"
- state: present
- - name: Create database freeradius
- mysql_db:
- name: freeradius
- login_password: "{{ lookup('env', 'MYSQL_PASSWORD') }}"
- state: present
- - name: Create database grafana
- mysql_db:
- name: grafana
- login_password: "{{ lookup('env', 'MYSQL_PASSWORD') }}"
- state: present
- - name: Create database statsd_db
- mysql_db:
- name: statsd_db
- login_password: "{{ lookup('env', 'MYSQL_PASSWORD') }}"
- state: present
- - name: Create database base
- mysql_db:
- name: fd3_base
- login_password: "{{ lookup('env', 'MYSQL_PASSWORD') }}"
- state: present
- - name: Create database ftth
- mysql_db:
- name: fd3_ftth
- login_password: "{{ lookup('env', 'MYSQL_PASSWORD') }}"
- state: present
- - name: Create database stats
- mysql_db:
- name: fd3_stats
- login_password: "{{ lookup('env', 'MYSQL_PASSWORD') }}"
- state: present
- - name: Create database cablemodem
- mysql_db:
- name: fd3_cablemodem
- login_password: "{{ lookup('env', 'MYSQL_PASSWORD') }}"
- state: present
- - name: Create database Radius
- mysql_db:
- name: fd3_radius
- login_password: "{{ lookup('env', 'MYSQL_PASSWORD') }}"
- state: present
- - name: Create database dhcp
- mysql_db:
- name: fd3_dhcp
- login_password: "{{ lookup('env', 'MYSQL_PASSWORD') }}"
- state: present
- - name: Create database kea
- mysql_db:
- name: kea
- login_password: "{{ lookup('env', 'MYSQL_PASSWORD') }}"
- state: present
- - copy:
- src: "{{ playbook_dir }}/freeradius_schema.sql"
- dest: /tmp/freeradius_schema.sql
- - name: Create freeradius MySQL schema
- mysql_db:
- login_password: "{{ lookup('env', 'MYSQL_PASSWORD') }}"
- state: import
- name: freeradius
- target: "/tmp/freeradius_schema.sql"
- - name: Create user iksop
- mysql_user:
- name: 'iksop'
- password: "{{ lookup('env', 'MYSQL_PASSWORD') }}"
- login_password: "{{ lookup('env', 'MYSQL_PASSWORD') }}"
- priv: '*.*:ALL'
- state: present
- - copy:
- src: "{{ playbook_dir }}/mysql_scripts.sql"
- dest: /tmp/mysql_scripts.sql
- - name: Replace password mysql_scripts.sql
- shell: "sed -i -- 's/#password#/{{ lookup('env', 'MYSQL_PASSWORD') }}/g' /tmp/mysql_scripts.sql"
- - name: Run SQL commands against DB to create table
- mysql_db:
- login_password: "{{ lookup('env', 'MYSQL_PASSWORD') }}"
- state: import
- name: fd_session
- target: "/tmp/mysql_scripts.sql"
- - name: Launch docker for amqp. Tag=start_amqp
- hosts: 127.0.0.1
- connection: local
- tags: start_base
- tasks:
- - name: Docker amqp up
- command: "docker-compose up -d amqp"
- - name: "Wait for amqp. Timeout: 1 minutes"
- pause:
- minutes: 1
- - name: Launch docker for module base. Tag=start_base
- hosts: 127.0.0.1
- connection: local
- tags: start_base
- tasks:
- - name: Docker base up
- command: "docker-compose up -d base"
- - name: Configure module base. Tag=configure_base
- hosts: base
- connection: docker
- tags: configure_base
- vars:
- uris: ""
- tasks:
- - name: Chmod cache
- file:
- path: /opt/base/var/cache/
- recurse: yes
- mode: 777
- - name: Clean cache
- file:
- state: absent
- path: "/opt/base/var/cache/"
- - name: Load redirections
- set_fact:
- uris: "{{ uris }} --redirect_uri=https://{{ item }}.{{ lookup('env', 'CLIENT') }}.{{ lookup('env', 'DOMAIN') }}/login_check"
- with_items: "{{ lookup('env', 'MODULES_INSTALL').split(',') }}"
- - name: Load redirections app_dev
- set_fact:
- uris: "{{ uris }} --redirect_uri=https://{{ item }}.{{ lookup('env', 'CLIENT') }}.{{ lookup('env', 'DOMAIN') }}/app_dev.php/login_check"
- with_items: "{{ lookup('env', 'MODULES_INSTALL').split(',') }}"
- - name: Create oauth client
- shell: "bin/console oauth:client:createRedirects {{ uris }} > oauth.data.log"
- args:
- executable: /bin/bash
- - name: Copy file oauth.data.log to host
- fetch:
- src: /opt/base/oauth.data.log
- dest: /tmp/
- flat: yes
- - name: Configure oauth data for other container. Tag=configure_oauth
- hosts: 127.0.0.1
- connection: local
- tags: configure_oauth
- tasks:
- - name: "Add outh client id"
- shell: "cp /tmp/oauth.data.log {{ item }}.oauth.env"
- args:
- executable: /bin/bash
- with_items: "{{ lookup('env', 'MODULES_INSTALL').split(',') }}"
- - name: "Launch docker's. Tag=launch_dockers"
- hosts: 127.0.0.1
- connection: local
- tags: launch_dockers
- tasks:
- - name: "Dockers up"
- command: "docker-compose up -d {{ item }}"
- with_items: "{{ lookup('env', 'MODULES_INSTALL').split(',') }}"
- - name: "Wait to load containers. Timeout: 10 minutes. Tag=run_modules"
- hosts: "{{ lookup('env', 'MODULES_INSTALL') }}"
- connection: docker
- tags: run_modules
- tasks:
- - name: "Waiting"
- wait_for:
- path: "./vendor/composer/autoload_classmap.php"
- state: present
- sleep: 30
- timeout: 600
- - name: "Run doctrine:schema:update for modules. Tag=dsu_modules"
- hosts: "{{ lookup('env', 'MODULES_INSTALL') }}"
- connection: docker
- tags: dsu_modules
- tasks:
- - name: "Doctrine schema update"
- shell: "bin/console doctrine:schema:update --force"
- # Generate self-signed cert files for Nginx (intended for development, please replace with proper ones)
- - name: "Generate self-signed cert files for Nginx"
- hosts: 127.0.0.1
- connection: local
- tags: self_cert
- tasks:
- - name: "Make sure certs dir exists"
- shell: "mkdir -p ./certs"
- - name: "Generate self-signed certs for Nginx"
- shell: "openssl req -x509 -nodes -batch -days 365 -newkey rsa:2048 -keyout ./certs/privkey.pem -out ./certs/fullchain.pem -subj '/C=AR/ST=Santa Fe/L=Rosario/O=Interlink/OU=R&D/CN=*.{{ lookup('env','CLIENT') }}.{{ lookup('env','DOMAIN') }}/emailAddress=idev@interlink.com.ar'"
- - name: "Copy certs dir to nginx/certs"
- hosts: 127.0.0.1
- connection: local
- tags: copy_cert
- tasks:
- - name: "Create certs directory"
- shell: "mkdir -p ./nginx/certs"
- - name: "Copy certs directory"
- shell: "cp -nr ./certs/* ./nginx/certs"
- - name: "Kea files"
- hosts: 127.0.0.1
- connection: local
- tags: kea_files
- tasks:
- - name: Check if get_kea_files.sh exists
- stat:
- path: get_kea_files.sh
- register: kea_files_result
- - name: Check if dir kea exists
- stat:
- path: kea
- register: kea_dir_result
- - name: Get kea image
- command: docker-compose pull kea
- when: kea_files_result.stat.exists == True and kea_dir_result.stat.exists == False
- - name: Run chmod +x
- command: chmod +x get_kea_files.sh
- when: kea_files_result.stat.exists == True and kea_dir_result.stat.exists == False
- - name: Execute get_kea_files.sh
- command: sh get_kea_files.sh
- when: kea_files_result.stat.exists == True and kea_dir_result.stat.exists == False
- - name: "Supervisord files"
- hosts: 127.0.0.1
- connection: local
- tags: supervisord_files
- tasks:
- - name: Check if get_supervisord_files.sh exists
- stat:
- path: get_supervisord_files.sh
- register: supervisord_files_result
- - name: Check if supervisord exists
- stat:
- path: supervisord
- register: supervisord_dir_result
- - name: Get supervisord image
- command: docker-compose pull supervisord
- when: supervisord_files_result.stat.exists == True and supervisord_dir_result.stat.exists == False
- - name: Run chmod +x
- command: chmod +x get_supervisord_files.sh
- when: supervisord_files_result.stat.exists == True and supervisord_dir_result.stat.exists == False
- - name: Execute get_supervisord_files.sh
- command: sh get_supervisord_files.sh
- when: supervisord_files_result.stat.exists == True and supervisord_dir_result.stat.exists == False
- - name: "Run up all. Tag=up_all"
- hosts: 127.0.0.1
- connection: local
- tags: up_all
- tasks:
- - name: Docker up all modules
- command: "docker-compose up -d "
- - name: Docker stop nginx
- command: "docker-compose stop nginx "
- - name: Docker up nginx
- command: "docker-compose up -d nginx"
|