1、集群组网信息
序号 | 主机名 | IP地址 | 操作系统版本 |
---|---|---|---|
1 | devops01 | 10.255.200.1 | CentOS 7.8.2003 |
2 | devops02 | 10.255.200.2 | CentOS 7.8.2003 |
3 | devops03 | 10.255.200.3 | CentOS 7.8.2003 |
各模块高可用方案如下:
- Tengine 3节点通过keepalived切换
- Jumpserver、koko、guacamole 独立3节点通过tengine负载
- Mariadb galera 3节点集群
- Redis sentinel 3节点哨兵模式实现主从切换,keepalived实现VIP切换
- Keepalived 自身配置了状态切换邮件通知
以下基础环境配置,无特殊说明的情况下表示集群中3台主机均需执行相同配置
2、安装操作系统
操作系统安装主要包括UEFI启动配置,磁盘冗余配置,系统时区配置,系统磁盘分区等配置。
序号 | 挂载点 | 主要用途 |
---|---|---|
1 | /sas | 安装软件 |
2 | /ssd | 保存数据库数据 |
3、配置网卡聚合
3.1 交换机端使用动态聚合配置,服务器端使用mode 4 (802.3ad),实现链路负载分担。
# 交换机端配置示例(H3C)
interface Bridge-Aggregation10
port access vlan 100
link-aggregation mode dynamic
interface Ten-GigabitEthernet1/1/10
port link-mode bridge
port access vlan 100
port link-aggregation group 10
interface Ten-GigabitEthernet2/1/10
port link-mode bridge
port access vlan 100
port link-aggregation group 10
# 操作系统端配置命令
nmcli connection add type bond ifname app mode 4
nmcli connection add type bond-slave ifname eno49 master app
nmcli connection add type bond-slave ifname ens4f0 master app
systemctl restart network
# 设置IP地址,需补充填写 Monitoring frequency :100 , Link up delay: 0 , Link down delay: 0 三个参数。
nmtui
3.2 冗余测试
# 使用另一个终端Ping目标主机,并交替停用聚合的2张网卡,观察网络是否中断
ping 10.255.200.1
ifdown eno49
ifup eno49
ifdown ens4f0
ifup ens4f0
4、更新操作系统补丁
ping www.baidu.com
yum update –y
reboot
5、升级Openssh至最新版本
Centos7 发行版自带的openssh版本为7.4p1,存在己知漏洞,需升级至最新版本。具体操作参考:https://segmentfault.com/a/1190000022756834 。
yum install -y gcc epel-release wget
# 下载最新版本软件包并解压
cd /sas/src/
wget https://ftp.openssl.org/source/openssl-1.1.1h.tar.gz
tar –xzf openssl-1.1.1h.tar.gz
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.4p1.tar.gz
tar –xzf openssh-8.4p1.tar.gz
# 备份并编译安装openssl
mv /usr/bin/openssl /usr/bin/openssl_old
cd openssl-1.1.1h
./config shared && make && make install
# 创建软链接修复运行错误
# openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
ln -s /usr/local/bin/openssl /usr/bin/openssl
ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/
# 查看版本验证openssl可正常运行
openssl version
# 安装openssh相关依赖
yum install zlib-devel openssl-devel pam-devel –y
# 备份openssh 相关配置
mkdir /etc/ssh_old
mv /etc/ssh/* /etc/ssh_old/
# 编译安装
cd ../ openssh-8.4p1
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/lib64/ --with-zlib --with-pam --with-md5-password --with-ssl-engine --with-selinux
make && make install
# 验证版本
ssh –V
# 修改sshd_config 配置root登录
vim /etc/ssh/sshd_config
PermitRootLogin yes
# 启动新版openssh
# 移走以前的ssh服务, 防止与新的冲突
mv /usr/lib/systemd/system/sshd.service /etc/ssh_old/sshd.service
mv /usr/lib/systemd/system/sshd.socket /etc/ssh_old/sshd.socket
# 从解压包中拷贝一些文件
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
# 重新启动
systemctl daemon-reload
/etc/init.d/sshd restart
# 添加自启动
chkconfig --add sshd
chkconfig sshd on
6、修改主机名并配置hosts信息
# 查看主机名
hostname
hostnamectl
# 修改主机名
hostnamectl set-hostname devops01
# 将主机名与IP关系写入hosts文件
vi /etc/hosts
10.255.200.1 devops01
10.255.200.2 devops02
10.255.200.3 devops03
7、关闭Selinux
Jumpserver官方推荐生产环境不要关闭Selinux,但由于此集群还需要部署其它服务,所以未遵守安全建议。
# 查看当前Selinux状态
getenforce
sestatus -v
# 临时关闭Selinux,重启失效,重启后会依配置文件状态运行
setenforce 0
# 永久关闭Selinux,重启后生效
vi /etc/selinux/config
SELINUX=disabled
8、配置NTP时钟同步
由于数据库集群、MFA双因子认证等均依赖时间的准确性,因此建议配置NTP时钟同步。
# 安装时钟同步软件
yum install -y chrony
# 修改时钟同步源,将centos官方源换成国内阿里云时钟源
vi /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst
server ntp4.aliyun.com iburst
server ntp5.aliyun.com iburst
server ntp6.aliyun.com iburst
# 启动时钟同步服务并设置自启动
systemctl start chronyd
systemctl enable chronyd
systemctl status chronyd
9、配置集群主机间SSH互信
在每台主机上生成ssh证书,并拷备至集群内其它2台主机。
# 生成证书
ssh-keygen -t rsa
# 拷备至除本机以外的其它2台集群主机
ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.255.200.2
ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.255.200.3
来源:oschina
链接:https://my.oschina.net/u/4414726/blog/4678859