1 概述
在DevOp中,有大量的自动化部署工作。引入自动化流程,可以减少人工错误,提高工作效率,方便在不同环境中实现快速部署。
2 简要思路
2.1 准备工作
准备如下3个目录:
./template #各种服务的缺省配置、模版、yaml文件等。
./conf #实际环境用到的端口、IP等配置文件
./target #放置最终生成的配置文件
注意:
1、模板文件要有典型配置,最好不要再去修改,以免影响target文件生成时候的操作。
2、要熟练使用到crudini和sed两个工具:
2.2 流程概况
1、使用crud工具读取conf文件,得到各种变量;
2、把模板文件copy到target目录,根据得到的变量,使用sed去修改文件。
3、最后使用更新好target文件去创建各种服务。
具体操作:
my.conf示意文件如下,每个变量注释写明确一些,因为这个文件可能是交给别人去阅读和修改
# 所有变量写在这个配置文件中
[CUSTOM]
# 宿主机的网卡名
# 有些虚拟机是类似ens33
# 有些类似eth0
host_if_name =eth0
# 数据库IP
mysql_ip =176.16.200.37
# 数据库业务端口
mysql_port =13916
# 网络存储NFS的IP地址
nfs_ip =172.16.200.30
[K8S]
# NodePort起始端口
node_port_start =1
# NodePort结束端口,不大于65535
node_port_end =65535
# Containerd持久化数据的存储路径
containerd_path =/var/lib/containerd
[HSM]
# 密码机IP地址
hsm_ip =172.16.200.10
# 密码机服务端口
# 缺省情况下,服务器密码机的服务端口是6667
# 云密码机的服务端口是6666
hsm_port =6666
举例,使用crudini在上述文件中得到数据库IP的操作如下:
[root@others liu.bo]# mysql_ip=$(crudini --get my.conf CUSTOM mysql_ip)
[root@others liu.bo]# echo $mysql_ip
176.16.200.37
注意:如果没有crudini, yum install crudini -y 安装上即可。