feature:修改tsg-traffic-engine服务的启动停止逻辑
This commit is contained in:
@@ -6,8 +6,5 @@ After=k3s.service mrzcpd.service
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart=/bin/sh -c "/opt/tsg/vsys1/scripts/tsg-traffic-image-load.sh;\
|
||||
k3s kubectl create configmap vsys1-provision --from-file=/data/tsg-os-provision/provision.yml --from-file=/opt/tsg/tsg-os-provision/.policy_and_log_nic_ip.yaml;\
|
||||
k3s kubectl apply -f /opt/tsg/vsys1/workload_resource/tsg_workload_resource.yml"
|
||||
ExecStop=/bin/sh -c "k3s kubectl delete -f /opt/tsg/vsys1/workload_resource/tsg_workload_resource.yml;\
|
||||
k3s kubectl delete configmap vsys1-provision"
|
||||
ExecStart=/bin/sh -c "/opt/tsg/vsys1/scripts/tsg-traffic-engine.sh start"
|
||||
ExecStop=/bin/sh -c "/opt/tsg/vsys1/scripts/tsg-traffic-engine.sh stop"
|
||||
|
||||
98
ansible/roles/vsys/files/tsg-traffic-engine.sh
Normal file
98
ansible/roles/vsys/files/tsg-traffic-engine.sh
Normal file
@@ -0,0 +1,98 @@
|
||||
#!/bin/bash
|
||||
IMAGES_RELEASE_VAR="default"
|
||||
DOCKER_IMAGES_VER="default"
|
||||
IMAGES_REPO_LIST=("tsg-firewall" "tsg-proxy" "tsg-certstore" "tsg-telegraf" "tsg-init")
|
||||
CONFIGMAP_NAME="vsys1-provision"
|
||||
COMMAND_K3S="/usr/local/bin/k3s"
|
||||
WR_PATH="/opt/tsg/vsys1/workload_resource/tsg_workload_resource.yml"
|
||||
PROVISION_PATH="/data/tsg-os-provision/provision.yml"
|
||||
APPEND_PROVISION_PATH="/opt/tsg/tsg-os-provision/.policy_and_log_nic_ip.yaml"
|
||||
|
||||
TRAFFIC_ENGINE_ACTION=$1
|
||||
|
||||
|
||||
os_release_var_obtain(){
|
||||
HOST_OS_RELEASE_VAR=$(awk -F= '$1=="VERSION" { print $2 ;}' /etc/os-release | sed 's/\"//g' | cut -d ' ' -f1)
|
||||
if [ "${DOCKER_IMAGES_VER}" == "default" ]; then
|
||||
IMAGES_RELEASE_VAR=${HOST_OS_RELEASE_VAR}
|
||||
else
|
||||
IMAGES_RELEASE_VAR=${DOCKER_IMAGES_VER}
|
||||
fi
|
||||
echo "Need to import container images version:${IMAGES_RELEASE_VAR}"
|
||||
}
|
||||
|
||||
image_check_loaded_and_load(){
|
||||
IMAGES_REF=$(${COMMAND_K3S} ctr image list | awk '{print $1}')
|
||||
for IMAGE_REPO in ${IMAGES_REPO_LIST[@]}; do
|
||||
if [[ "${IMAGES_REF}" =~ "${IMAGE_REPO}:${IMAGES_RELEASE_VAR}" ]]; then
|
||||
echo "Contaimer iamage loaded, repo name:${IMAGE_REPO}, tag:${IMAGES_RELEASE_VAR}"
|
||||
else
|
||||
IMAGE_PATH="/opt/tsg/images/${IMAGE_REPO}-${IMAGES_RELEASE_VAR}-docker.tar"
|
||||
echo "Contaimer images not load, repo name:${IMAGE_REPO}, tag:${IMAGES_RELEASE_VAR}"
|
||||
if [ ! -f ${IMAGE_PATH} ]; then
|
||||
echo "Containers images ${IMAGE_PATH} is not exsit! exit now"
|
||||
exit 1
|
||||
fi
|
||||
${COMMAND_K3S} ctr image import ${IMAGE_PATH}
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
configmap_delete(){
|
||||
${COMMAND_K3S} kubectl delete configmap ${CONFIGMAP_NAME}
|
||||
}
|
||||
|
||||
configmap_check_running_and_create(){
|
||||
QUERY_CONFIGMAP_RESULT=$(${COMMAND_K3S} kubectl get configmap | awk '{print $1}')
|
||||
if [[ "${QUERY_CONFIGMAP_RESULT}" =~ "${CONFIGMAP_NAME}" ]]; then
|
||||
echo "configmap:${CONFIGMAP_NAME} is running"
|
||||
configmap_delete
|
||||
else
|
||||
echo "configmap:${CONFIGMAP_NAME} is not running"
|
||||
fi
|
||||
${COMMAND_K3S} kubectl create configmap ${CONFIGMAP_NAME} --from-file=${PROVISION_PATH} --from-file=${APPEND_PROVISION_PATH}
|
||||
}
|
||||
|
||||
wr_create(){
|
||||
${COMMAND_K3S} kubectl apply -f ${WR_PATH}
|
||||
}
|
||||
|
||||
wr_delete(){
|
||||
${COMMAND_K3S} kubectl delete -f ${WR_PATH}
|
||||
}
|
||||
|
||||
traffic_engine_start(){
|
||||
os_release_var_obtain
|
||||
image_check_loaded_and_load
|
||||
configmap_check_running_and_create
|
||||
wr_create
|
||||
}
|
||||
|
||||
traffic_engine_stop(){
|
||||
wr_delete
|
||||
configmap_delete
|
||||
}
|
||||
|
||||
traffic_engine_status(){
|
||||
echo "Configmap list:"
|
||||
${COMMAND_K3S} kubectl get configmap
|
||||
echo -e "\n"
|
||||
echo "Daemonset list:"
|
||||
${COMMAND_K3S} kubectl get daemonset
|
||||
echo -e "\n"
|
||||
echo "Pod list:"
|
||||
${COMMAND_K3S} kubectl get pod
|
||||
echo -e "\n"
|
||||
}
|
||||
|
||||
if [ "${TRAFFIC_ENGINE_ACTION}" == "start" ]; then
|
||||
traffic_engine_start
|
||||
fi
|
||||
|
||||
if [ "${TRAFFIC_ENGINE_ACTION}" == "stop" ]; then
|
||||
traffic_engine_stop
|
||||
fi
|
||||
|
||||
if [ "${TRAFFIC_ENGINE_ACTION}" == "status" ]; then
|
||||
traffic_engine_status
|
||||
fi
|
||||
@@ -38,8 +38,14 @@
|
||||
dest: /usr/lib/systemd/system/tsg-traffic-engine.service.d/service_override_slice.conf
|
||||
mode: 0644
|
||||
|
||||
- name: "templates tsg-traffic-image-load.sh.j2"
|
||||
template:
|
||||
src: "{{role_path}}/templates/tsg-traffic-image-load.sh.j2"
|
||||
dest: /opt/tsg/vsys1/scripts/tsg-traffic-image-load.sh
|
||||
# - name: "templates tsg-traffic-image-load.sh.j2"
|
||||
# template:
|
||||
# src: "{{role_path}}/templates/tsg-traffic-image-load.sh.j2"
|
||||
# dest: /opt/tsg/vsys1/scripts/tsg-traffic-image-load.sh
|
||||
# mode: 0755
|
||||
|
||||
- name: "copy tsg-traffic-engine.sh to dest"
|
||||
copy:
|
||||
src: "{{role_path}}/files/tsg-traffic-engine.sh"
|
||||
dest: /opt/tsg/vsys1/scripts/tsg-traffic-engine.sh
|
||||
mode: 0755
|
||||
|
||||
Reference in New Issue
Block a user