diff --git a/handlers/main.yml b/handlers/main.yml index 9978759..4eb4fbc 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -1,52 +1,57 @@ --- - name: restart mysql service: name: mysql state: restarted enabled: yes - name: stop mysql service: name: mysql state: stopped +- name: reload mysql + service: + name: mysql + state: reloaded + - name: restart nginx service: name: nginx state: restarted enabled: yes - name: restart haproxy service: name: haproxy state: restarted enabled: yes - name: reload haproxy service: name: haproxy state: reloaded - name: restart php-fpm service: name: php-fpm state: restarted enabled: yes - name: restart sshd_phabricator service: name: sshd_phabricator state: restarted enabled: yes - name: restart rsyslogd service: name: rsyslog state: restarted enabled: yes - name: reload gmond service: name: gmond state: reloaded diff --git a/tasks/configure-dbs.yml b/tasks/configure-dbs.yml index baeb038..af450b2 100644 --- a/tasks/configure-dbs.yml +++ b/tasks/configure-dbs.yml @@ -1,74 +1,80 @@ --- # MySQL data - name: Create volume filesystem filesystem: fstype=ext4 dev=/dev/vdb - name: Create MySQL directory file: state: directory path: "/var/lib/mysql" - owner: 997 - group: 994 + owner: mysql + group: mysql mode: 0755 - name: Mount repo volume mount: name: "/var/lib/mysql" src: "/dev/vdb" fstype: 'ext4' opts: 'defaults' state: 'mounted' # Install MySQL and Galera - name: Copy Galera yum config copy: src=db-yum.repo dest=/etc/yum.repos.d/galera.repo - name: Shared MySQL lib shell: yum upgrade -y mysql-wsrep-shared-5.5 -x mysql-wsrep-shared-5.6 - yum: name="{{ item }}" state=latest update_cache=yes with_items: - MySQL-python - mysql-wsrep-5.6 - galera-3 # Configure MySQL with Galera +- stat: path=/var/local/mysql_reset + register: mysql_reset + - name: Copy phabricator stop words copy: src=stopwords.txt dest=/srv/stopwords.txt - name: Copy minimal mysql config template: src=my-mini.cnf dest=/etc/my.cnf + when: not mysql_reset.stat.exists + notify: stop mysql - name: Reset MySQL root password - shell: service mysql stop; /etc/init.d/mysql start --skip-grant-tables; mysql -u root -e 'flush privileges; SET PASSWORD FOR 'root'@'localhost' = PASSWORD("");'; touch /var/local/mysql_reset + shell: /etc/init.d/mysql start --skip-grant-tables; mysql -u root -e 'flush privileges; SET PASSWORD FOR 'root'@'localhost' = PASSWORD("");'; touch /var/local/mysql_reset; service mysql stop + when: not mysql_reset.stat.exists args: creates: /var/local/mysql_reset - name: Copy mysql config template: src=my.cnf dest=/etc/my.cnf - name: Check Galera status shell: mysql -e "SHOW STATUS LIKE 'wsrep_evs_state';" -s | awk '{print $2}' register: galera_status - name: Bootstrap MySQL Galera cluster shell: service mysql stop; /etc/init.d/mysql bootstrap when: "'{{ inventory_hostname }}' == '{{ groups.dbs[0] }}' and galera_status.stdout != 'OPERATIONAL'" - service: name=mysql state=started enabled=false when: "'{{ inventory_hostname }}' != '{{ groups.dbs[0] }}'" - name: Create database app user mysql_user: state=present user={{ mysql_app_user }} password={{ mysql_app_pass }} priv=*.*:ALL host=10.0.0.0/255.255.0.0