拉取包解压
wget http://downloads.max.datahunter.cn/download/playbook/psql-master-slave.tar.gz
tar xf psql-master-slave.tar.gz -C /etc/ansible
修改从主机配置文件postgresql-slave.conf
sed -i 's/10.1.3.10/master_ip/g' postgresql-slave.conf
修改yml文件 install_psql_slave.yml
sed -i 's/10.1.3.10/slave_ip/g' install_psql_slave.yml
安装pg-master
ansible-playbook install_psql_master.yml -e 'slave-ip=*'
安装pg-slave
ansible-playbook install_psql_slave.yml -e 'master-ip=*'
install_psql_master.yml
- hosts: ansible-hosts
remote_user: root
tasks:
- name: 下载rpm-repo源
yum: name=https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm state=latest
- name: 安装psql12 client端
yum: name=postgresql12 state=latest
- name: 安装psql12 server端
yum: name=postgresql12-server state=latest
- name: 初始化psql
shell: /usr/pgsql-12/bin/postgresql-12-setup initdb
- name: 启动服务
shell: systemctl enable postgresql-12 && systemctl start postgresql-12
- name: 创建用户
shell: sudo -u postgres psql -c "CREATE ROLE replica login replication encrypted password 'replica';"
- name: 修改pg_hba.conf文件
copy: src=pg_hba.conf dest=/var/lib/pgsql/12/data/pg_hba.conf
- name: 修改配置文件
copy: src=postgresql-master.conf dest=/var/lib/pgsql/12/data/postgresql.conf
- name: 修改配置文件
shell: echo 'host replication replica {{ slave-ip }}/32 md5' >> /var/lib/pgsql/12/data/pg_hba.conf
- name: 修改配置文件
shell: echo 'host all all {{ slave-ip }}/32 trust' >> /var/lib/pgsql/12/data/pg_hba.conf
- name: 重启服务
shell: systemctl restart postgresql-12
install_psql_slave.yml
- hosts:
remote_user: root
tasks:
- name: 下载psql的rpm-repo源
yum: name=https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm state=installed
- name: 安装psql12 client端
yum: name=postgresql12 state=installed
- name: 安装psql12 server端
yum: name=postgresql12-server state=installed
- name: 初始化psql
shell: /usr/pgsql-12/bin/postgresql-12-setup initdb
- name: 启动服务
shell: systemctl enable postgresql-12 && systemctl start postgresql-12
- name: 移除从库数据目录
shell: systemctl stop postgresql12 && cd /var/lib/pgsql/12/data/ && rm -rf *
- name: 拷贝主服务器数据到从库
shell: sudo -u postgres PGPASSWORD=replica pg_basebackup -h {{ master-ip }} -p 5432 -U replica -Fp -Xs -Pv -R -D /var/lib/pgsql/12/data
- name: 修改配置文件
copy: src=postgresql.conf.slave desk=/var/lib/pgsql/12/data/postgresql.conf
- name: 修改配置文件
shell: 's/10.1.3.10/{{ master-ip }}/g' /var/lib/pgsql/12/data/postgresql.conf
- name: 启动从库
shell: systemctl start postgresql12