Skip to content

Ansible Playbooks for EDB tools

kanchanmohitey edited this page Apr 10, 2020 · 3 revisions

Create a Database Cluster (3 node - 1Master, 2Standby)

Ansible Deployment For 3 Node Cluster.

If you have the infrastructure ready and want to install/configure DB, you can run Ansible playbooks and set that up.

Here are the steps you can follow.

Go to module directory EDB_SR_SETUP/utilities/scripts.

Create hosts file with the following content.

master_public_ip ansible_user= ansible_ssh_private_key_file=

slave1_public_ip ansible_user= ansible_ssh_private_key_file=

slave2_public_ip ansible_user= ansible_ssh_private_key_file=

Replace username and path to file with your values.

Use below command to run ansible-playbook. Make sure you are providing extra arguments.

ansible-playbook -i hosts setupsr.yml --extra-vars='USER= PASS= EPASDBUSER= PGDBUSER= ip1= ip2= ip3= S3BUCKET= REPLICATION_USER_PASSWORD= DBPASSWORD= REPLICATION_TYPE= DB_ENGINE= MASTER= SLAVE1= SLAVE2='

Where

  • USER is EDB yum repo user name(If using EDB Postgres)

  • PASS is EDB yum repo user password

  • EPASDBUSER is DB username for EDB Postgres(leave blank if using community Postgres)

  • PGDBUSER is DB username for community Postgres(leave blank if using EDB Postgres)

  • ip1 is the internal IP of the master server

  • ip2 is internal IP of slave1

  • ip3 is internal IP of slave2

  • S3BUCKET is S3 bucket name followed by folder name(Eg. bucket name/folder name)

  • REPLICATION_USER_PASSWORD is a replication user/role password.

  • DBPASSWORD is a DB password.

  • REPLICATION_TYPE synchronous or asynchronous

  • DB_ENGINE provide options like pg10 or pg11 or epas10 or epas12

  • MASTER is master server public IP

  • SLAVE1 is slave1 server public IP

  • SLAVE2 is slave2 server public IP

SetUp EFM Cluster

Ansible Deployment of EFM For 3 Node Cluster.

If you have the infrastructure ready and want to set up EFM, you can run Ansible playbooks and set that up.

Here are the steps you can follow.

Go to module directory EFM_Setup_AWS/utilities/scripts.

Create hosts file with the following content. master_public_ip ansible_user= ansible_ssh_private_key_file=

slave1_public_ip ansible_user= ansible_ssh_private_key_file=

slave2_public_ip ansible_user= ansible_ssh_private_key_file=

Replace username and path to file with your values.

Use below command to run ansible-playbook. Make sure you are providing extra arguments.

ansible-playbook -i hosts setupefm.yml --extra-vars='DB_ENGINE= USER= PASS= DBUSER= EFM_USER_PASSWORD= MASTER= SLAVE1= SLAVE2= ip1= ip2= ip3= NOTIFICATION_EMAIL= REGION_NAME= S3BUCKET='

Where

  • DB_ENGINE provide options like pg10 or pg11 or epas10 or epas12

  • USER is yum repo user name

  • PASS is a yum repo user password.

  • DBUSER is a DB username.

  • EFM_USER_PASSWORD is the password for the EFM role.

  • MASTER is a master server public IP.

  • SLAVE1 is slave1 public IP.

  • SLAVE2 is slave2 public IP

  • ip1 is a master server internal IP.

  • ip2 is the slave1 server internal IP.

  • ip3 is the slave2 server internal IP.

  • NOTIFICATION_EMAIL is the email address for EFM notification.

  • REGION_NAME is the AWS region code.

  • S3BUCKET is S3 bucketname followed by foldername(Eg. bucketname/folder name)

Create a PEM monitoring server

Ansible Deployment For PEM monitoring server

If you have the infrastructure ready and want to configure that for PEM monitoring server, you can run ansible playbooks and configure it.

Here are the steps you can follow.

Go to module directory EDB_PEM_Server/utilities/scripts.

Create hosts file with following content.

pem_public_ip ansible_user= ansible_ssh_private_key_file=

Replace username and path to file with your values.

Use below command to run ansible-playbook. Make sure you are providing extra arguments.

ansible-playbook -i hosts pemserver.yml --extra-vars='USER= PASS= DB_PASSWORD= PEM_IP='

Where

  • USER is yum repo user name if DB_ENGINE is pg10,pg11,pg12.

  • PASS is yum repo user password if DB_ENGINE is pg10,pg11,pg12.

  • PEM_IP is IP of PEM server.

  • DB_PASSWORD is the password for PEM server local DB

Register PEM Agent with PEM server

Ansible Deployment For PEM Agent.

If you have the infrastructure ready and want to set up a pem agent, you can run Ansible playbooks and configure it.

Below are the steps you can follow to configure it.

Go to module directory EDB_PEM_AGENT/utilities/scripts.

Create hosts file with the following content.

master_public_ip ansible_user= ansible_ssh_private_key_file=

slave1_public_ip ansible_user= ansible_ssh_private_key_file=

slave2_public_ip ansible_user= ansible_ssh_private_key_file=

Use below command to run ansible-playbook. Make sure you are providing extra arguments.

ansible-playbook -i hosts installpemagent.yml --extra-vars='DB_ENGINE= USER= PASS= PEM_IP= DBPASSWORD= PEM_WEB_PASSWORD= EPASDBUSER= PGDBUSER='

Where

  • DB_ENGINE provide options like pg10 or pg11 or epas10 or epas12

  • USER is yum repo user name if DB_ENGINE is pg10,pg11,pg12.

  • PASS is yum repo user password if DB_ENGINE is pg10,pg11,pg12.

  • EPASDBUSER is DB username for EDB Postgres(leave blank if using community Postgres)

  • PGDBUSER is DB username for community Postgres(leave blank if using EDB Postgres)

  • DBPASSWORD is DB password

  • PEM_WEB_PASSWORD PEM server DB password.

  • PEM_IP is the IP of the PEM server.

Scale the DB Cluster

Ansible Deployment For Scale Existing Cluster.

If you have the infrastructure ready and want to scale cluster, you can run Ansible playbooks and configure it.

Below are the steps you can follow to configure it.

Go to module directory EDB_ADD_REPLICA_VMWARE/utilities/scripts.

Create hosts file with the following content.

master_ip ansible_user= ansible_ssh_pass= slave1_ip ansible_user= ansible_ssh_pass= slave2_ip ansible_user= ansible_ssh_pass= slave3_ip ansible_user= ansible_ssh_pass=

Replace username and path to file with your values.

Use below command to run ansible-playbook. Make sure you are providing extra arguments.

ansible-playbook -i hosts expandcluster.yml --extra-vars='DB_ENGINE= USER= PASS= PGDBUSER= EPASDBUSER= NEWSLAVE= REPLICATION_USER_PASSWORD= REPLICATION_TYPE= ip1= ip2= ip3= selfip= NOTIFICATION_EMAIL= SLAVE1= SLAVE2= DBPASSWORD= PEM_IP= PEM_WEB_PASSWORD='

Where

  • DB_ENGINE provide options like pg10 or pg11 or epas10 or epas12

  • USER is yum repo user name

  • PASS is yum repo user password.

  • EPASDBUSER is DB username for EDB postgres(leave blank if using community postgres)

  • PGDBUSER is DB username for community postgres(leave blank if using EDB postgres)

  • ip1 is internal IP of master server

  • ip2 is internal IP of slave1

  • ip3 is internal IP of slave2

  • REPLICATION_USER_PASSWORD is replication user/role password.

  • DBPASSWORD is DB password.

  • REPLICATION_TYPE synchronous or asynchronous

  • DB_ENGINE provide options like pg10 or pg11 or epas10 or epas12

  • MASTER is master server public IP

  • SLAVE1 is slave1 server public IP

  • SLAVE2 is slave2 server public IP

  • EFM_USER_PASSWORD is password for EFM role.

  • NOTIFICATION_EMAIL is email address for EFM notification.

  • NEWSLAVE is public IP of new server

  • selfip is internal IP of new server.

  • NOTIFICATION_EMAIL is email address for EFM notification.

  • DBPASSWORD is DB password

  • PEM_WEB_PASSWORD PEM server DB password.

  • PEM_IP is IP of PEM server.