Создать новый файл из шаблонов и переместить файл на другой сервер с помощью сценария bash - PullRequest
0 голосов
/ 04 августа 2020

Я создаю файлы conf по умолчанию nginx default.conf и перемещаю созданные файлы на желаемый сервер.

Exam:

  1. Файл default.conf
 server { 
     listen       192.168.1.1:80;
     server_name  domain1.com www.domain1.com;
     access_log   logs/domain1.access.log  main;
     root         html;
     }
Создать conf с шаблоном и заменить список IP:
server { 
    listen       192.168.1.2:80; (Server recevice conf is 192.168.1.2)
    server_name  domain1.com www.domain1.com;
    access_log   logs/domain1.access.log  main;
    root         html;
    }

Это моя идея с использованием переменной импорта:

#! / Bin / bash

cat <

Если у вас есть другие идеи. Не могли бы вы рассказать мне больше?

1 Ответ

0 голосов
/ 04 августа 2020

Возможно, это то, что вы хотите (не проверено).

Во-первых, все в одном скрипте со встроенным шаблоном:

Shell-скрипт make_conf_file.sh:

#/bin/bash

export CONF_FILE=${1}
export TEMPLATE_IP=${2}
export TEMPLATE_PORT=${3}
export TEMPLATE_SRVR1=${4}
export TEMPLATE_SRVR2=${5}
export TEMPLATE_ACCESS_LOG=${6}

cat <<END > ${CONF_FILE}

server { 
    listen       ${TEMPLATE_IP}:${TEMPLATE_PORT};
    server_name  ${TEMPLATE_SRVR1) ${TEMPLATE_SRVR2};
    access_log   ${TEMPLATE_ACCESS_LOG} main;
    root         html;
    }

END

Затем запустите как:

./make_conf_file.sh /tmp/f1.conf 192.168.1.2 80 domain1.com www.domain1.com logs/domain1.access.log

Или, если вы хотите использовать файлы шаблона внешнего определения:

template.dat:

server { 
    listen       TEMPLATE_IP:TEMPLATE_PORT;
    server_name  TEMPLATE_SRVR1 TEMPLATE_SRVR2;
    access_log   TEMPLATE_ACCESS_LOG main;
    root         html;
    }

Сценарий оболочки make_conf_file.sh:

#/bin/bash

export CONF_FILE=${1}
export TEMPLATE_FILE=${2}
export TEMPLATE_IP=${3}
export TEMPLATE_PORT=${4}
export TEMPLATE_SRVR1=${5}
export TEMPLATE_SRVR2=${6}
export TEMPLATE_ACCESS_LOG=${7}

sed "s/TEMPLATE_IP/${TEMPLATE_IP}/" ${TEMPLATE_FILE} | \
sed "s/TEMPLATE_PORT/${TEMPLATE_PORT}/" | \
sed "s/TEMPLATE_SRVR1/${TEMPLATE_SRVR1}/" | \
sed "s/TEMPLATE_SRVR2/${TEMPLATE_SRVR2}/" | \
sed "s/TEMPLATE_ACCESS_LOG/${TEMPLATE_ACCESS_LOG}/" \
> ${CONF_FILE}

Затем запустите как:

./make_conf_file.sh /tmp/f1.conf template.dat 192.168.1.2 80 domain1.com www.domain1.com logs/domain1.access.log

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...