暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ansible自动部署磐维数据库

原创 feilunshuai 2024-10-20
285

1、准备ansible环境

ansible环境准备


2、下载磐维自动安装代码并解压到ansible主机的/opt/ansbile 目录

自动化安装代码下载

cd /opt/ansible
tar xf ansible_panwei.tar.gz


3、准备机器、安装包

3.1准备三台机器,这里以bclinux8.2 为例

IP
主备
IP类型
主机名
管理网IP
内存

192.168.0.127

primary
P
vdb1
192.168.0.127至少8G

192.168.0.126

standby
P
vdb2
192.168.0.126至少8G

192.168.0.125

standby
P
vdb3
192.168.0.125至少8G
192.168.0.130
VIP




3.2 将安装包上传到primary机器,这里上传到/tmp 目录

PanWeiDB_V2.0-S3.0.1_B01-install-bclinux_8.2-x86_64-no_mot.tar.gz


3.3 三台机器配置好yum源



4、编写自己的inventory

docker exec  -it ansible2.9 /bin/bash
[root@ff2ab1fc6d9d /]# cd /opt/ansible/panwei/ 


如vim Ha_inventory_panwei

[primary]
vdb1 ansible_ssh_host="192.168.0.127" vip='192.168.0.130' private_ip='192.168.0.127' ansible_ssh_user=root ansible_ssh_pass="123456"

[standby]
vdb2 ansible_ssh_host="192.168.0.126"  ansible_ssh_user=root private_ip='192.168.0.126' ansible_ssh_pass="123456"
vdb3 ansible_ssh_host="192.168.0.125"  ansible_ssh_user=root private_ip='192.168.0.125' ansible_ssh_pass="123456"
#
[cascade]
#vdb4 ansible_ssh_host="192.168.11.133"  ansible_ssh_user=root ansible_ssh_pass="123456"

[all:vars]
#ansible_python_interpreter=/usr/bin/python3
#ansible_become=true 
#ansible_become_user=root
#ansible_become_password='123456'
#ansible_become_method=su

soft_path = '/tmp/PanWeiDB_V2.0-S3.0.1_B01-install-bclinux_8.2-x86_64-no_mot.tar.gz'
install_has_dir = "/database/panweidb/cm"
install_soft_dir = "/database/panweidb/soft"
install_base = "/database/panweidb/app"
install_db_data = "/database/panweidb/data"
#install_pg_log = "/database/panweidb/pg_xlog" #no use
install_db_backup = "/backup"
install_core_dump = "/database/panweidb/corefile"
install_arch_dest = "/archive"
#install_db_log = "/database/panweidb/log"       #no use
install_db_audit = "/database/panweidb/pg_audit" 
install_os_user = "omm"
install_os_group = "dbgrp"
pw_os_user = 'pw123456'
pw_db = 'Pw@123456'
license_filename = ''  #If it's empty, it will not use license.
#A means oracle compatibility, B means mysql compatibility, PG means postgresql compatibility
dbcompatibility='B'

ntp_servers = ['20.189.79.72','time.windows.com']

###for python
install_python = "Python-3.6.9.tgz"
python_installdir = "/usr/local/python3"

###for config xml
clusterName = "panweidb"
gaussdbLogPath = "/database/panweidb/log"
tmpMppdbPath = "/database/panweidb/tmp"
gaussdbToolPath = "/database/panweidb/tool"
mode = 2   # 1:single , 2: 1primary *standby *cascade
cmServerPortBase = "18800"
dataPortBase = "17700"

###for io_scheduler
config_device = ['nvme0n1','nvme0n2']   #empty will not config ,use default
config_rule_name = '89_io_scheduler.rules'
config_target = 'deadline'

###
#db parameters 
#max_connections = "1000"
#maintenance_work_mem = "64MB"
#work_mem = "2MB"

#for callback.sh
callvip="fe80::5d3e:d481:b611:5452"
VIPBRD="::"
VIPNETMASKBIT="64"
VIPDEV="ens160"
VIPLABEL=17700


参数解释:

这里主要填写

soft_path 上传的软件包的路径
ansible_ssh_host 为ansible主机连接的地址,也是提供业务连接的物理IP地址
private_ip 管理IP,如果做业务网IP和集群内部管理IP分离,可单独配置个集群管理IP,这里示例机器只有单网卡,用同一个IP
vip 集群的vip,可以自动漂移
ansible_ssh_user ssh的用户,可以是普通用户,如果是root用户,ansible_become=true,ansible_become_user=root,ansible_become_password='123456',ansible_become_method=su 参数请注释;当root用户禁止直接登录的时候,可以用普通用户,并打开上述4个参数。
前面几行的vdb1、vdb2、vdb3 为主机名,在执行的时候会将主机名修改为对应的名称。
install_os_user = "omm" 为数据库运行的操作系统用户 install_os_group = "dbgrp" 为数据库运行的操作系统用户的默认组 pw_os_user = 'pw123456'    为添加的数据库用户的密码 pw_db = 'Pw@123456    为安装时设置的数据库默认密码
mode = 2 可以为1或者2 ,1表是安装单机版本,为2 表示安装集群版本,根据填写的主机数,自动安装为1主多备多关联的模式
dbcompatibility='A' 表示安装库的兼容模式,A表示oracle兼容模式,B表示mysql兼容模式,PG表示postgresql兼容模式

###for io_scheduler config_device = ['nvme0n1','nvme0n2'] #empty will not config ,use default config_rule_name = '89_io_scheduler.rules' config_target = 'deadline
这三个参数为配置磁盘的调用模式,如果有nvme磁盘,默认调度方式非deadline,需要修改为deadline模式,这里示例,表示将nvme0n1,nvme0n2 2块磁盘更改为deadline模式,如果还有更多,依次添加即可

#for callback.sh callvip="fe80::5d3e:d481:b611:5452" VIPBRD="::" VIPNETMASKBIT="64" VIPDEV="ens160" VIPLABEL=17700
配置自动回调脚本,跟VIP一样,如果有ipv6作为vip需要,可以填写该部分,并在安装结束后,执行额外配置


5、执行安装,在ansible主机上

[root@ff2ab1fc6d9d panwei]# ansible-playbook  -i Ha_inventory_panwei  panwei_Ha_install.yaml



6、配置计划任务定期删除日志、归档(可选)

ansible-playbook  -i Ha_inventory_panwei  yaml/config_cron.yml


7、配置callback.sh (ipv6)(可选)

ansible-playbook  -i Ha_inventory_panwei  yaml/callback.yaml 


8、获取集群所有机器的机器码以便申请license(可选)

ansible-playbook  -i Ha_inventory_panwei  yaml/get_fingerprint.yml

注意去掉首字符\r


9、如果需要在安装后,配置root不能直接登录(可选)

安装过程中会打开root直接登录,安装后如果需要可以执行下面配置root为不能直接登录

注意,需要用普通用户连接的方式,如果还是root直接登录方式,当配置生效后,root无法直接登录,如果执行长时间无法返回结果,这是预期内的

ansible-playbook  -i Ha_inventory_panwei  yaml/norootlogin.yml




「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论