|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- #!/bin/bash
-
- # 配置文件路径
- config_file="config.ini"
-
- # YAML 模板文件路径
- agent_template_file="template/rclone-agent.yaml.template"
- rclone_pv_template_file="template/rclone-pv.yaml.template"
- coordinator_template_file="template/coordinator.yaml.template"
- scanner_template_file="template/scanner.yaml.template"
- client_template_file="template/client.yaml.template"
-
-
- image_registry_address=$(awk -F "=" '/\[General\]/{f=1} f==1 && /image_registry/{print $2; exit}' "$config_file")
-
- # 逐行读取文件
- while IFS= read -r line; do
- # 判断是否是标题行
- if [[ $line == \[*] ]]; then
- current_section=$(echo "$line" | tr -d '[]')
-
- case $current_section in
- agent*)
- echo "读取agent配置"
- while IFS= read -r next_line && [[ $next_line ]]; do
- case "$next_line" in
- label=*) label=$(echo "$next_line" | cut -d '=' -f 2) ;;
- port=*) port=$(echo "$next_line" | cut -d '=' -f 2) ;;
- node=*) node=$(echo "$next_line" | cut -d '=' -f 2) ;;
- esac
- done
- if [[ -n $label && -n $port && -n $node ]]; then
- # 创建并替换 YAML 文件
- agent_yaml_file="rclone_agent_$label.yaml"
- #pv_yaml_file="rclone_pv_$label.yaml"
-
- if [ ! -f "$agent_yaml_file" ]; then
- sed "s/{{NODE_NAME}}/$label/g;
- s/{{NODE_PORT}}/$port/g;
- s/{{NODE_ID}}/$node/g;
- s/{{IMAGE_REGISTRY_ADDRESS}}/$image_registry_address/g" "$agent_template_file" > "$agent_yaml_file"
- fi
-
- #if [ ! -f "$pv_yaml_file" ]; then
- # sed "s/{{NODE_NAME}}/$label/g" "$rclone_pv_template_file" > "$pv_yaml_file"
- #fi
-
- # 清空变量,以便下一个节点的处理
- label=""
- port=""
- node=""
- fi
- ;;
-
- coordinator)
- echo "读取coordinator配置"
- while IFS= read -r next_line && [[ $next_line ]]; do
- case "$next_line" in
- label=*) coor_label=$(echo "$next_line" | cut -d '=' -f 2) ;;
- node=*) coor_node=$(echo "$next_line" | cut -d '=' -f 2) ;;
- esac
- done
- if [[ -n $coor_label && -n $coor_node ]]; then
- coor_yaml_file="coordinator.yaml"
- if [ ! -f "$coor_yaml_file" ]; then
- sed "s/{{NODE_NAME}}/$coor_label/g;
- s/{{IMAGE_REGISTRY_ADDRESS}}/$image_registry_address/g" "$coordinator_template_file" > "$coor_yaml_file"
- fi
- fi
- ;;
-
- scanner)
- echo "读取scanner配置"
- while IFS= read -r next_line && [[ $next_line ]]; do
- case "$next_line" in
- label=*) scan_label=$(echo "$next_line" | cut -d '=' -f 2) ;;
- node=*) scan_node=$(echo "$next_line" | cut -d '=' -f 2) ;;
- esac
- done
- if [[ -n $scan_label && -n $scan_node ]]; then
- scan_yaml_file="scanner.yaml"
- if [ ! -f "$scan_yaml_file" ]; then
- sed "s/{{NODE_NAME}}/$scan_label/g;
- s/{{IMAGE_REGISTRY_ADDRESS}}/$image_registry_address/g" "$scanner_template_file" > "$scan_yaml_file"
- fi
- fi
- ;;
-
- client)
- echo "读取client配置"
- while IFS= read -r next_line && [[ $next_line ]]; do
- case "$next_line" in
- label=*) cli_label=$(echo "$next_line" | cut -d '=' -f 2) ;;
- port=*) cli_port=$(echo "$next_line" | cut -d '=' -f 2) ;;
- node=*) cli_node=$(echo "$next_line" | cut -d '=' -f 2) ;;
- esac
- done
- if [[ -n $cli_label && -n $cli_port && -n $cli_node ]]; then
- cli_yaml_file="client.yaml"
- if [ ! -f "$cli_yaml_file" ]; then
- sed "s/{{NODE_NAME}}/$cli_label/g;
- s/{{NODE_PORT}}/$cli_port/g;
- s/{{IMAGE_REGISTRY_ADDRESS}}/$image_registry_address/g" "$client_template_file" > "$cli_yaml_file"
- fi
- fi
- ;;
- esac
- fi
- done < "$config_file"
|