%PDF- %PDF-
| Direktori : /proc/self/root/etc/ansible/roles/mysql/tasks/ |
| Current File : //proc/self/root/etc/ansible/roles/mysql/tasks/create_slave.yml |
---
# Create slave role on the server
# input_options:
# cluster_login = login for cluster ( if first replication input, for other get it from file )
# cluster_password|cluster_password_file = password
# replica_login = login used in replication
# replica_password|replica_password_file = password
# slave_server = <hostname>
# mysql_last_id = last used server-id in the pool
# on localhost gathering facts abount installed sites
- include: sites-gathering_facts.yml
- include: sites-checks.yml
- include: mysql-check-slave.yml
- name: replication variables on the slave-server
set_fact:
mysql_replication_role: slave
mysql_serverid: "{{ mysql_last_id+1 }}"
when: "inventory_hostname == slave_server"
tags: vars
- name: cluster password
set_fact:
cluster_password: "{{ lookup('file', cluster_password_file) }}"
when: cluster_password_file is defined
tags: vars
- name: replica password
set_fact:
replica_password: "{{ lookup('file', replica_password_file) }}"
when: replica_password_file is defined
tags: vars
#- name: debug
#debug: msg="cluster_password={{ cluster_password }} replica_password={{ replica_password }}"
- include: common-etckeeper.yml
when: "slave_server == inventory_hostname or master_server == inventory_hostname"
# configure mysql options and user's access
- include: configure-certs.yml
when: "inventory_hostname == slave_server or inventory_hostname == master_server"
static: no
- include: setup.yml
when: "slave_server == inventory_hostname or master_server == inventory_hostname"
- include: mysql_uuid.yml
when: "slave_server == inventory_hostname and mysql_mid_version == '7'"
# sync master and slave operations
- include: mysql-master-lock.yml
when: "slave_server == inventory_hostname or master_server == inventory_hostname"
# update php configs of sites; only on web balancer
- include: sites-update_settings.yml
when: "cluster_web_server == inventory_hostname"
- name: restart httpd
service: name=httpd state=restarted
when: "'bitrix-web' in group_names"
# disable public part of site, agents and events - delegate_to localhost(balancer)
- include: sites-make_public.yml
when: "inventory_hostname == cluster_web_server"
# configure mysql slave server
- include: mysql-configure-slave.yml
when: "inventory_hostname == slave_server"
- include: mysql-pt-slave-restart-start.yml
when: "inventory_hostname == slave_server"
## enable public part of site
- name: create site_stopped variable
set_fact: site_stopped='N'
when: "'bitrix-web' in group_names"
- include: sites-make_public.yml
when: "inventory_hostname == cluster_web_server"
# register slave in cluster module - delegate to localhost(balancer)
# Note: we use slave_server variables and execute script on cluster_web_server
- include: sites-register_slave.yml
when: "inventory_hostname == slave_server"
# update ansible config files
- include: mysql-inventory-slave.yml
when: "inventory_hostname == slave_server"
# delete lock file
- name: delete lock file on master server
file:
path: "/tmp/{{ master_server }}.lock"
state: absent
when: "master_server == inventory_hostname"
tags: mysql_sync
# monitoring plugins
- include: mysql-monitor-slave.yml
when: "monitoring_status == 'enable' and slave_server == inventory_hostname"