Как реализовать работу скрипта по конфигу ?
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- мл. сержант
- Сообщения: 99
- Зарегистрирован: 2009-07-28 9:46:46
Как реализовать работу скрипта по конфигу ?
Необходимо написать скрипт который бы развертывал определенную связку, но проблема в том что он должен быть применим к разным системам, тоесть он должен читать определенные директивы из файла и вставлять их в конфигурационный файл развертываемой программы. У меня есть пара идей, но они довольно грубы... а хотелось бы по человечески. Помогите пожалуйста кто в силах.
Алгоритм:
1.Запускается скрипт под root.
2. Лезет на удаленный сервер и проверяет есть ли там в папке для него конфиги (например по фтп), если есть то качает, нет то прерывает работу.
3. Устанавливает софт ( заведомо известный)
4. Модифицирует дефолтные конфиги установленного софта, перезапускает софт.
5. Добавляет в крон задание раз в 6 часов проверять наличие конфигов, если есть повторить пункты 2, 4.
Думал упросить все это простой заменой .... каждая копия скрипта направляется в свою папку фтп, где лежит готовый руками отредактированный конфиг, скрипт качает конфиг заменяет существующий и перезапускает службу.
Алгоритм:
1.Запускается скрипт под root.
2. Лезет на удаленный сервер и проверяет есть ли там в папке для него конфиги (например по фтп), если есть то качает, нет то прерывает работу.
3. Устанавливает софт ( заведомо известный)
4. Модифицирует дефолтные конфиги установленного софта, перезапускает софт.
5. Добавляет в крон задание раз в 6 часов проверять наличие конфигов, если есть повторить пункты 2, 4.
Думал упросить все это простой заменой .... каждая копия скрипта направляется в свою папку фтп, где лежит готовый руками отредактированный конфиг, скрипт качает конфиг заменяет существующий и перезапускает службу.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- Alex Keda
- стреляли...
- Сообщения: 35426
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Как реализовать работу скрипта по конфигу ?
и что именно у вас не получается?
Убей их всех! Бог потом рассортирует...
-
- лейтенант
- Сообщения: 613
- Зарегистрирован: 2009-08-05 16:10:46
- Откуда: Украина Днепропетровск-Киев
- Контактная информация:
Re: Как реализовать работу скрипта по конфигу ?
Я так понимаю вызывает вопросы пункт №4 (4. Модифицирует дефолтные конфиги установленного софта, перезапускает софт.)?
Со всем остальным порядок?
Если так, опишите на примере что должно модифицироваться в конфигах.
Со всем остальным порядок?
Если так, опишите на примере что должно модифицироваться в конфигах.
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.
-
- мл. сержант
- Сообщения: 99
- Зарегистрирован: 2009-07-28 9:46:46
Re: Как реализовать работу скрипта по конфигу ?
Хочу понять принцип, как реализовать проход по файлу. чтобы скрипт читал первое значение опеределяя его как нужную опцию конфига, и вторую как занчение которое нужно использоватьAlex Keda писал(а):и что именно у вас не получается?
например:
Test.cfg
Код: Выделить всё
Enabled=1
Job=/tmp/test.job
Schedule=/tmp/job.sched
hostname=example.test.com
-
- мл. сержант
- Сообщения: 99
- Зарегистрирован: 2009-07-28 9:46:46
Re: Как реализовать работу скрипта по конфигу ?
Да вы правы ... имено 4 тый пункт вызывает трудности.kpp писал(а):Я так понимаю вызывает вопросы пункт №4 (4. Модифицирует дефолтные конфиги установленного софта, перезапускает софт.)?
Со всем остальным порядок?
Если так, опишите на примере что должно модифицироваться в конфигах.
Например скрипт должен установить на 1 сервер Apache+Mysql+PHP и взять для него готовые конфиги з папки 1, а на второй Nginx+Mysql+PHP и взять для него конфиги из папки 2, в случае ошибки с апач отправить log admin1@test.com а в случае ошибки с nginx admin2@test.com.
-
- лейтенант
- Сообщения: 613
- Зарегистрирован: 2009-08-05 16:10:46
- Откуда: Украина Днепропетровск-Киев
- Контактная информация:
Re: Как реализовать работу скрипта по конфигу ?
Проход по файлу :
Код: Выделить всё
TEMP_IFS="${IFS}"
IFS="="
while read key value
do
echo "key=\"$key\" value=\"$value\""
# делаем что нужно
done < Test.cfg
IFS="${TEMP_IFS}"
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.
-
- мл. сержант
- Сообщения: 99
- Зарегистрирован: 2009-07-28 9:46:46
Re: Как реализовать работу скрипта по конфигу ?
А вы не в курсе как можно реализовать автоматический ЧекАут (checkout) по SVN?kpp писал(а):Проход по файлу :Код: Выделить всё
TEMP_IFS="${IFS}" IFS="=" while read key value do echo "key=\"$key\" value=\"$value\"" # делаем что нужно done < Test.cfg IFS="${TEMP_IFS}"
# svn co /test.svn.com/trunk
Код: Выделить всё
$ svn co https://subversion.test.com/svn/installtest/trunk
Authentication realm: <https://subversion.test.com:443> Test Restricted Area
Password for 'user':
Authentication realm: <https://subversion.test.com:443>Test Restricted Area
Username: test
Password for 'test':
-----------------------------------------------------------------------
ATTENTION! Your password for authentication realm:
<https://subversion.test.com:443> test Restricted Area
can only be stored to disk unencrypted! You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible. See the documentation for details.
You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/home/user/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? yes
A trunk/index.html
Checked out revision 2.
svn co https://subversion.test.com/svn/installtest/trunk
прямо в консоль приходит запрос авторизации
Вводится имя
Вводится пароль
Соглашаемся с не шифорованным паролем
ЧекАут закончен
Как автоматизировать этот процесс, нужно позарез.
-
- лейтенант
- Сообщения: 613
- Зарегистрирован: 2009-08-05 16:10:46
- Откуда: Украина Днепропетровск-Киев
- Контактная информация:
Re: Как реализовать работу скрипта по конфигу ?
Смотри /home/user/.subversion/servers
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.
-
- проходил мимо
Re: Как реализовать работу скрипта по конфигу ?
это не означает что нужно спамить по всем темамКак автоматизировать этот процесс, нужно позарез.
только что бы вам срочно помогли
-
- проходил мимо
- Сообщения: 3
- Зарегистрирован: 2011-06-02 12:02:01
Re: Как реализовать работу скрипта по конфигу ?
Код: Выделить всё
#!/bin/sh
ping="/sbin/ping -c 5"
routechk="`netstat -rn | fgrep default | awk '{print $2}'`"
gw=`ifconfig em0 | awk '/inet/{print $2}'`
rezgw=`ifconfig re0 | awk '/inet/{print $2}'`
############### ping main gateway ###############
$ping $gw > /dev/null
if [ $? = 0 ] && [ $routechk != $gw ]
then
echo "answer from gateway was be given"
echo "check default route and correct"
route change default $gw
elif [ $routechk != $rezgw ]
then
echo "answer from gateway was NOT be given, change route to rezerved gateway";
route change default $rezgw;
else
echo "it's ok, i will repeat check again at 5 minuts"
fi
Можно использовать в кроне.
-
- лейтенант
- Сообщения: 613
- Зарегистрирован: 2009-08-05 16:10:46
- Откуда: Украина Днепропетровск-Киев
- Контактная информация:
Re: Как реализовать работу скрипта по конфигу ?
2 sudoroot Это к чему?
Топиком не ошиблись?

Топиком не ошиблись?
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.
-
- проходил мимо
- Сообщения: 3
- Зарегистрирован: 2011-06-02 12:02:01
Re: Как реализовать работу скрипта по конфигу ?
2 kpp, прошу прощения, действительно ошибся. И удалить свое сообщение нет возможности =(
-
- ст. лейтенант
- Сообщения: 1374
- Зарегистрирован: 2010-02-05 0:21:40
Re: Как реализовать работу скрипта по конфигу ?
Kazak писал(а):Хочу понять принцип, как реализовать проход по файлу. чтобы скрипт читал первое значение опеределяя его как нужную опцию конфига, и вторую как занчение которое нужно использоватьAlex Keda писал(а):и что именно у вас не получается?
например:
Test.cfgСкрипт читает, опеределяет переменные, определяет их значения и выполняет работу.Код: Выделить всё
Enabled=1 Job=/tmp/test.job Schedule=/tmp/job.sched hostname=example.test.com
Код: Выделить всё
#! /bin/bash
. /etc/Test.cfg
[ "${Enabled}" = "0" ] && exit
hostname ${hostname}
-
- проходил мимо
Re: Как реализовать работу скрипта по конфигу ?
не майте дурью. этот скрипт уже есть. называется puppet. делает всё что требуется и даже больше.