The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"глобальные переменные"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"глобальные переменные"  
Сообщение от AHgpuXa (ok) on 18-Авг-08, 16:23 
Доброго времени суток!
Подскажите плз есть ли возможность определить глобальные переменные, для последующего использования начиная с rc.conf и во всех остальных конфигах.
Заранее благодарен.
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "глобальные переменные"  
Сообщение от shutdown now on 18-Авг-08, 16:41 
>Доброго времени суток!
>Подскажите плз есть ли возможность определить глобальные переменные, для последующего использования начиная
>с rc.conf и во всех остальных конфигах.
>Заранее благодарен.

/etc/rc.conf, /etc/rc.conf.local or /etc/rc.conf.d/script_name

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "глобальные переменные"  
Сообщение от AHgpuXa (ok) on 18-Авг-08, 17:12 
>>Доброго времени суток!
>>Подскажите плз есть ли возможность определить глобальные переменные, для последующего использования начиная
>>с rc.conf и во всех остальных конфигах.
>>Заранее благодарен.
>
>/etc/rc.conf, /etc/rc.conf.local or /etc/rc.conf.d/script_name

а можно пример, если не затруднит.
Пробовал
1. set variable1="value1"
2. setenv variable2 value2
3. variable3=value3
   export variable3

ни в одном из случаев при обращении к $variableN, ругается "переменная не определена"
Спасибо.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "глобальные переменные"  
Сообщение от Guest (??) on 18-Авг-08, 17:05 
>Доброго времени суток!
>Подскажите плз есть ли возможность определить глобальные переменные, для последующего использования начиная
>с rc.conf и во всех остальных конфигах.
>Заранее благодарен.

В общем случае нет. Только использовать какой-нибудь препроцессор на всех нужных конфигах.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "глобальные переменные"  
Сообщение от AHgpuXa (ok) on 18-Авг-08, 17:20 
>>Доброго времени суток!
>>Подскажите плз есть ли возможность определить глобальные переменные, для последующего использования начиная
>>с rc.conf и во всех остальных конфигах.
>>Заранее благодарен.
>
>В общем случае нет. Только использовать какой-нибудь препроцессор на всех нужных конфигах.
>

а поподробней можно?
Есть мысль переписать конфиги, что-бы подставлять IP, маску, сеть и т.д. из переменных, которые определяются 1 раз в одном месте.
Для оперативного клонирования системы на другие машины.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "глобальные переменные"  
Сообщение от Guest (??) on 18-Авг-08, 19:21 
>а поподробней можно?
>Есть мысль переписать конфиги, что-бы подставлять IP, маску, сеть и т.д. из
>переменных, которые определяются 1 раз в одном месте.
>Для оперативного клонирования системы на другие машины.

- Оригиналы конфигов храним где-то сбоку (т.е. напимер, в /orig/etc и /orig/usr/local/etc)
- Все значения которые надо заменять запишем в каком-то особом виде. Например, так:
rc.conf:
ifconfig_em0="-inet %%IP%%"
pf.conf:
external_addr="%%IP%%"
httpd.conf:
BindAddress %%IP%%

разумеется, синтаксис не должен конфликтовать с синтаксисом конфигов.
- Делаем скрипт, который копирует конфиги из /orig в /, пропуская их через препроцессор. Подойдет простой sed:

cd /orig && find . -type f | while read file; do
    sed -e 's|%%IP%%|192.168.0.1|g' < /orig/$file > /$file
done

Собсно все.

Только для клонирования машин это не лучшее решение.
Во-первых, клонирование - это dump/restore или dd.
А вот для быстрой настройки свежей системы (да и в принцыпе, перенастройки текущей) лучше написать скрипт, который просто создает все конфиги сам.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "глобальные переменные"  
Сообщение от AHgpuXa (ok) on 18-Авг-08, 19:35 
>
>Только для клонирования машин это не лучшее решение.
>Во-первых, клонирование - это dump/restore или dd.
>А вот для быстрой настройки свежей системы (да и в принцыпе, перенастройки
>текущей) лучше написать скрипт, который просто создает все конфиги сам.

Спасибо.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "глобальные переменные"  
Сообщение от AHgpuXa (ok) on 21-Авг-08, 14:01 

>[оверквотинг удален]
>BindAddress %%IP%%
>
>разумеется, синтаксис не должен конфликтовать с синтаксисом конфигов.
>- Делаем скрипт, который копирует конфиги из /orig в /, пропуская их
>через препроцессор. Подойдет простой sed:
>
>cd /orig && find . -type f | while read file; do
>
>    sed -e 's|%%IP%%|192.168.0.1|g' < /orig/$file > /$file
>done

а есть возможность подставлять переменную. Что то типа так:
ip="192/168.0.1"
sed -e 's|%%IP%%|$ip|g' < /orig/$file > /$file
>
>Собсно все.
>
>Только для клонирования машин это не лучшее решение.
>Во-первых, клонирование - это dump/restore или dd.

Именно так и планирую делать
>А вот для быстрой настройки свежей системы (да и в принцыпе, перенастройки
>текущей) лучше написать скрипт, который просто создает все конфиги сам.

мысли витают в голове. Но что то никак не могу их привести к единому целому.
Можно примерчик, если не трудно, дабы направить меня на путь истинный.
Заранее благодарен.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "глобальные переменные"  
Сообщение от Guest (??) on 21-Авг-08, 16:59 
>а есть возможность подставлять переменную. Что то типа так:
>ip="192/168.0.1"
>sed -e 's|%%IP%%|$ip|g' < /orig/$file > /$file

ip="192/168.0.1"
sed -e "s|%%IP%%|$ip|g" < /orig/$file > /$file
или
sed -e 's|%%IP%%|'$ip'|g' < /orig/$file > /$file

>мысли витают в голове. Но что то никак не могу их привести
>к единому целому.
>Можно примерчик, если не трудно, дабы направить меня на путь истинный.

А чего примерчик, делай то что нужно и как тебе удобно. У меня, например, скрипт для автоматическоо создания настроенных jail'ов делает примерно следующее:

Если кратко:

install_custome_etc() {
    echo "===> Installing SSH config"
    cat > "${JAILDIR}/etc/ssh/sshd_config" << _END
VersionAddendum $JAILNAME

AddressFamily inet
AllowUsers $USERNAME
HostKey /etc/ssh/ssh_host_dsa_key

PrintMotd no
ClientAliveInterval 120
UseDNS no
MaxStartups 1
_END  

    echo "===> Installing make.conf"
    cat > "${JAILDIR}/etc/make.conf" << _END
# Global (c args, arch, processor, optimizations)
CPUTYPE=        `cat /etc/make.conf | grep CPUTYPE | awk '{print $NF}'`

# Port options
PORTSEARCH_DISPLAY_FIELDS=      name,path,info
WRKDIRPREFIX?=  /usr/work
DISTDIR?=       /usr/distfiles
PACKAGES?=      /usr/packages

DISABLE_VULNERABILITIES=        yes

# Port build opts
WITHOUT_PRINT=  true
WITHOUT_JAVA=   true
WITHOUT_X11=    true
_END  

    echo "===> Installing rc.conf"
    cat > "${JAILDIR}/etc/rc.conf" << _END
sshd_enable="YES"
syslogd_enable="NO"
sendmail_enable="NONE"
_END  
      
    echo "===> Installing resolv.conf"
    cat > "${JAILDIR}/etc/resolv.conf" << _END
search mydomain
nameserver 192.168.0.1
_END

    echo "===> Updating crontab"
    sed -i.bak -e 's|^[0-9*]|#&|' "${JAILDIR}/etc/crontab"
    sed -i.bak -e '/^PATH=/ s|$|:/usr/local/bin|' "${JAILDIR}/etc/crontab"
    sed -i.bak -e '/^HOME=/ a\
    MAILTO=""' "${JAILDIR}/etc/crontab"

    echo "===> Updating localtime"
    cp /etc/localtime "${JAILDIR}/etc/localtime"

    ...
    rm -f ${JAILDIR}/etc/*.bak
}

Ну и т.д. - короче, все что нужно настраивает, создает юзеров, заполняет хомдиры, устанавливает must have порты типа zsh и sudo и т.д.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "глобальные переменные"  
Сообщение от AHgpuXa (ok) on 22-Авг-08, 15:20 
Спасибо.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру