ansible安装pg主从

拉取包解压

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值