Использование:
Данный сервис позволяет выполнять команды Cocon из shell, не подключаясь к нему, для этого используется следующий формат:
ccnexec -u <User> [-p <Pass>] [<Host>:[<Port>]] [-o <OutputFile>] [-f <Filename> | -c Command [Arg1 Arg2 ...]]
где
- login — логин для подключения к Cocon;
- password — пароль для подключения к Cocon;
- port — порт для подключения к Cocon;
- OutputFile — файл для вывода;
- Filename — чтение команд из файла;
- Command — команда передаваемая в Cocon.
Для того, чтобы вручную не вводить пароль, можно сохранить куки:
ccnexec -u <User> [-p <Pass>] -S <CookieFile> [<Host>:[<Port>]] ccnexec -u <User> [-p <Pass>] -s [<Host>:[<Port>]]
Ввод команд с использованием cookie(не забудьте установить -rw - - - - - - - разрешения для вашего файла cookie):
ccnexec -k [<Host>:[<Port>]] [-o <OutputFile>] [-f <Filename> | -c Command [Arg1 Arg2 ...]] ccnexec -K <CookieFile> [<Host>:[<Port>]] [-o <OutputFile>] [-f <Filename> | -c Command [Arg1 Arg2 ...]]
Параметры:
-u <User> — пользователь CoCon
-p <Pass> — пароль пользователя
-k — использовать куки (по умолчанию — <HomeDir>/.ccn_cookie)
-K <Cookie> — путь + имя файла Cookie
-o <File> — файл для записи вывода
-f <File> — файл, откуда читать список команд (это не одно и то же, как cat <File> | ./ccnexec)
-c <Cmd> [<Args>] — выполнить одну команду, должен быть в конце, т.к. команды args разделены пробелами
-s — сгенерировать новый файл куки и сохранить его в <HomeDir>/.ccn_cookie
-S <Cookie> — сгенерировать новый файл куки и сохранить его в <Cookie>
Дополнительные параметры:
-A — остановить выполнение при ошибке;
-P — читать пароль из файла (если включена опция -f)
-i — интерактивное выполнение (не работает с опцией -с)
Примеры:
Создать куки:
sasha@ecss1:~/ssw1_3.14$ ccnexec -u admin -p password -s 192.168.1.21 Cookie is saved to /home/sasha/.ccn_cookie
Выполнение простой команды:
sasha@ecss1:~/ssw1_3.14$ ccnexec -k -c system-status Checking... ┌─┬───────────────┬────────────────────────┬───────────────┬─────────────┬──────────┐ │ │ Node │ Release │ Erlang nodes │Mnesia nodes │ Uptime │ ├─┼───────────────┼────────────────────────┼───────────────┼─────────────┼──────────┤ │ │core1@ecss1 │ecss-core-3.14.3.20 │core1@ecss1 │not running │1d 19h 31m│ │ │ds1@ecss1 │ecss-ds-3.14.3.20 │ds1@ecss1 │ds1@ecss1 │1d 19h 31m│ │ │md1@ecss1 │ecss-mediator-3.14.3.20 │md1@ecss1 │md1@ecss1 │1d 19h 30m│ │ │megaco1@ecss1 │ecss-pa-megaco-3.14.3.20│megaco1@ecss1 │megaco1@ecss1│1d 19h 30m│ │ │mycelium1@ecss1│ecss-mycelium-3.14.3.20 │mycelium1@ecss1│not running │1d 19h 31m│ │ │sip1@ecss1 │ecss-pa-sip-3.14.3.20 │sip1@ecss1 │sip1@ecss1 │1d 19h 30m│ └─┴───────────────┴────────────────────────┴───────────────┴─────────────┴──────────┘ All services are started. Active media resource selected list specific: ┌─────────────┬───────┬───────────┬───────────┬────────────┐ │ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │ │ │ │ version │ │ │ ├─────────────┼───────┼───────────┼───────────┼────────────┤ │ core1@ecss1 │ msr_1 │ 3.14.3.11 │ connected │ 1 19:28:20 │ │ │ msr_2 │ 3.14.3.11 │ connected │ 1 17:48:39 │ └─────────────┴───────┴───────────┴───────────┴────────────┘ Alarms list on md1: ┌──────┬──────┬──────┬────────┬────────┬────────┬──────────────────────┐ │ Date │Severi│Locati│ Cause │ Class │Instance│ Message │ │ │ ty │ on │ │ │ │ │ ├──────┼──────┼──────┼────────┼────────┼────────┼──────────────────────┤ │10.11 │critic│core1@│software│ecss::sy│core1@ec│Error log data updated│ │00:00:│al │ecss1 │Error │stem::lo│ss1 │ │ │00 │ │ │ │g │ │ │ └──────┴──────┴──────┴────────┴────────┴────────┴──────────────────────┘ Selected: 1 Total: 1
Установка лицензии с помощью ccnexec — скрипт bash:
#!/bin/bash ecss_passport_fname='ECSS_test_010079.passp' ecss_lic_fname='ecss_010079_2019-09.lic' ip_ecss=192.168.1.21 SCRIPT_FILENAME=`readlink -e "$0"` SCRIPT_HOME=`dirname "$SCRIPT_FILENAME"` # каталог запуска скрипта cd $SCRIPT_HOME if [ -e $ecss_passport_fname ] # Проверка наличия файла. then passp=$(cat $ecss_passport_fname) else echo "passport file "$ecss_passport_fname" not found!" exit fi if [ -e $ecss_lic_fname ] # Проверка наличия файла. then lic=$(cat $ecss_lic_fname) else echo "License file "$ecss_lic_fname" not found!" exit fi echo $passp echo "------------" echo $lic echo "----------------" sudo scp -r $SCRIPT_HOME/_var_lib_ecss/routing/ /var/lib/ecss/ sudo scp -r $SCRIPT_HOME/_var_lib_ecss/adaptation/ /var/lib/ecss/ sudo scp -r $SCRIPT_HOME/_var_lib_ecss/modification/ /var/lib/ecss/ # echo "Restore media-server config" # cp -pf _etc/ecss/ecss-media-server/config.xml /var/lib/ecss/ecss-media-server/config.xml sudo chmod 666 /etc/ecss/ecss-media-server/config* ssh-keygen -f "/home/bsk/.ssh/known_hosts" -R [192.168.1.21]:8023 echo "starting myc & ds.." sudo systemctl start ecss-mycelium.service sudo systemctl start ecss-ds.service sleep 10 ccnexec -u admin -p password -s $ip_ecss ccnexec -k -c system-status sleep 5 echo "set passport" ccnexec -k -c cluster/storage/ds1/licence/set-passport `echo $passp` sleep 20 echo "add license $lic" ccnexec -k -c cluster/storage/ds1/licence/add `echo $lic` sleep 2 echo "restart nodes..." ./restart_ecss.sh ccnexec -k -c system-status echo "Done. Then declare domains..."
Создание домена:
#!/bin/bash ccnexec -k -i << EOF shell-options prompt \l@\n:\p domain/declare biysk.local sleep 4 cocon/add-user-to-group admin ecss-biysk.local-domain-admin cocon/add-user-to-group admin ecss-biysk.local-domain-user cocon/list users domain/list cd domain/biysk.local ./properties/info sleep 3 ./np/declare np_240 ./routing/import ecss1 ctx_city_common.xml ./routing/import ecss1 ctx_from_ewsd.xml ./routing/import ecss1 ctx_to_ewsd.xml ./routing/import ecss1 ctx_from_local.xml ./routing/import ecss1 ctx_to_ivr.xml sleep 5 ./cdr/add_cdr_group bsk3 mode time 00:00 sleep 5 ./cdr/change_cdr_group bsk3 prefix bsk3 ./alias/set-for-domain cdr_group bsk3 ./tts/properties/set cdr_type extended ./tts/properties/set sign_cdr_enabled false /cluster/mediator/md1/properties/rpss/set * dbConnections stat_db mysql database=ecss_statistics host=192.168.1.71 port=3306 user=statistics password=statistics sleep 2 /cluster/mediator/md1/statistics/add hostResources 5 rpss_db_export stat_db --recovery-dir /var/lib/ecss/statistics/ sleep 3 /cluster/adapter/sip1/sip/network/set ip_set ipset1 listen-ports list = [5060, 5061, 5062, 5063, 5064, 5065, 5070, 5071, 5072, 5073, 5074, 5075] sleep 5 /cluster/adapter/sip1/sip/network/set ip_set ipset1 node-ip node = sip1@ecss1 ip = 192.168.2.61 /cluster/adapter/sip1/sip/network/set ip_set ipset1 node-ip node = sip1@ecss2 ip = 192.168.2.62 /cluster/adapter/sip1/sip/network/set ip_set ipset1 dscp 24 /cluster/adapter/sip1/sip/network/info sleep 5 cd /domain/biysk.local ./properties/set public_names add biysk.local ./sip/network/set ip_set [ipset1] ./trunk/sip/declare ctx_from_ewsd smg.gr smg-4 ipset1 static 192.168.2.8 5061 sip-t 5061 --check ./trunk/sip/declare ctx_from_local sbc.gr nsk_sbc ipset1 static 192.168.2.6 5062 sip-t 5062 ./trunk/sip/declare ctx_from_local sbc.gr to_sipp ipset1 static 192.168.2.6 5063 sip-t 5063 ./trunk/sip/declare ctx_from_local sbc.gr to_aster ipset1 static 192.168.2.6 5064 sip-t 5064 ./trunk/sip/declare ctx_from_local ssw.gr ems1 ipset1 static 192.168.2.15 5071 sip-proxy 5071 ./trunk/sip/declare ctx_from_local ssw.gr ems2 ipset1 static 192.168.2.15 5072 sip-proxy 5072 ./trunk/sip/declare ctx_from_local ssw.gr bsk1 ipset1 static 192.168.2.12 5073 sip-proxy 5073 ./trunk/sip/declare ctx_from_local ssw.gr bsk2 ipset1 static 192.168.2.12 5074 sip-proxy 5074 ./trunk/sip/set smg.gr smg-4 sip_transport udp_only ./trace/properties/set mode full_compressed ./trace/properties/set backend dets sleep 2 ./access-type/declare admin1 false false false false false false false false false false true true 21 admin ./regime/declare accsusp false false false false false false false false false false true true 21 accsusp sleep 1 cd /cluster/storage/ds1/ss ./install ds1@ecss1 * ./access-list add biysk.local * sleep 1 cd / ./system/media/registrar/set common registration-timeout 90 ./system/media/registrar/set private core1@ecss1 listen-ip 192.168.2.21 ./system/media/registrar/set private core1@ecss2 listen-ip 192.168.2.22 ./system/media/resource/declare core1@ecss1 iface msr_1 bond1.2 default local true ./system/media/resource/declare core1@ecss1 iface msr_2 bond1.2 default local true ./system/media/resource/declare core1@ecss2 iface msr_1 bond1.2 default local true ./system/media/resource/declare core1@ecss2 iface msr_2 bond1.2 default local true ./system/media/trace/set backend dets ./system/media/trace/set mode full_compressed sleep 1 cd /domain/biysk.local/notifier ./set email ecss10biysk@mail.ru ./set email_enable false ./set email_port 465 ./set email_username ecss10biysk@mail.ru ./set email_password <passwd> ./set email_server smtp.mail.ru ./set email_protection_connection ssl_tls ./info sleep 1 cd /domain/biysk.local ./iface/group-set -g loc.gr -p terminal_type basic ./subscriber-portal/properties/set auto_create_account true ./subscriber-portal/properties/set auto_delete_account true ./subscriber-portal/properties/set connection 192.168.1.71:3306 subscribers subscribers ecss_subscribers sleep 1 cd /domain/biysk.local/properties/restrictions ./set callcenter\enabled true ./set teleconference\enabled true ./set ivr\enabled true /system/tc/set * mysql_enabled true /domain/biysk.local/iface/user-set .system .system system:ivr routing.context ctx_from_local /domain/biysk.local/iface/user-set .system .system system:teleconference routing.context ctx_from_local EOF
Создание абонентов(пароли вымышленные):
#!/bin/bash ccnexec -k -i << EOF cd domain/biysk.local ./sip/user/declare ctx_from_local loc.gr 240001 alias-as-user qop_authentication login-as-user pw001 ./sip/user/declare ctx_from_local loc.gr 240002 alias-as-user qop_authentication login-as-user pw002 ./sip/user/declare ctx_from_local loc.gr 240473 alias-as-user qop_authentication login-as-user pw473 ./sip/user/declare ctx_from_local loc.gr 240475 alias-as-user qop_authentication login-as-user pw475 ./sip/user/declare ctx_from_local loc.gr 240{500-799} alias-as-user qop_authentication login-as-user test_pw #... ./ss/profile/declare min_ss only_clip_cnip_chold sleep 3 ./ss/profile/ss-add min_ss chold true true dtmf_sequence_as_flash = false sleep 1 ./ss/profile/ss-add min_ss clip true true sleep 1 ./ss/profile/ss-add min_ss clip true true sleep 3 ./ss/profile/declare work_ss for_office sleep 3 ./ss/profile/ss-add work_ss clip true true ./ss/profile/ss-add work_ss cnip true true ./ss/profile/ss-add work_ss chold true true ./ss/profile/ss-add work_ss ctr true true ./ss/profile/ss-add work_ss conference true true ./ss/profile/ss-add work_ss cf_sip true true ./ss/profile/ss-add work_ss cc_agent true true ./ss/profile/ss-add work_ss ml true true ./ss/profile/ss-add work_ss mcid true true ./ss/profile/ss-add work_ss intervention true true ./ss/profile/ss-add work_ss park true true ./ss/profile/ss-add work_ss meet-me-conference true true ./ss/enable 24010{0-1} * ./ss/enable 2404{62-75} * ./ss/enable 24010{0-1} * ./ss/enable 2404{62-75} * ./ss/profile/activate work_ss 24000{1-9} ./ss/profile/activate work_ss 2404{62-75} ./ss/profile/activate work_ss 24010{0-1}
Добавить комментарий