diff options
| author | lijia <[email protected]> | 2019-09-18 20:45:30 +0800 |
|---|---|---|
| committer | lijia <[email protected]> | 2019-09-18 20:45:30 +0800 |
| commit | 6e25d6bbf07cdae0032e46eaa58fe14de5b2f3f7 (patch) | |
| tree | 7e3ad14a80177e01df22ebc8a0197d66e212f544 /roles | |
| parent | 4fc766a1e0a75664aa9c5fd076c53b70f92e1e7c (diff) | |
计算板拆分为4个roles分别部署
Diffstat (limited to 'roles')
16 files changed, 304 insertions, 4 deletions
diff --git a/roles/tsg-cli-mcn1-3/files/tsg-monitor.service b/roles/tsg-cli-mcn1/files/tsg-monitor.service index f61aded..f61aded 100644 --- a/roles/tsg-cli-mcn1-3/files/tsg-monitor.service +++ b/roles/tsg-cli-mcn1/files/tsg-monitor.service diff --git a/roles/tsg-cli-mcn1-3/files/tsg-monitor.sh b/roles/tsg-cli-mcn1/files/tsg-monitor.sh index 3b15808..b8ca53a 100644 --- a/roles/tsg-cli-mcn1-3/files/tsg-monitor.sh +++ b/roles/tsg-cli-mcn1/files/tsg-monitor.sh @@ -1,6 +1,6 @@ #!/bin/sh -#mcn1-3 +#mcn1 #防止因上一次的命令阻塞或长时间未返回, #导致10秒内还不结束, 强行杀掉, @@ -9,7 +9,6 @@ killall_uncompleted_cmd(){ #killall -9 tsg_cluster_register killall -9 tsg_diagnose_background killall -9 tsg_update_tags - killall -9 tsg_monit_interface } diff --git a/roles/tsg-cli-mcn1-3/files/tsg_chassis_interface.json b/roles/tsg-cli-mcn1/files/tsg_chassis_interface.json index 9f84b50..db4dd03 100644 --- a/roles/tsg-cli-mcn1-3/files/tsg_chassis_interface.json +++ b/roles/tsg-cli-mcn1/files/tsg_chassis_interface.json @@ -8,6 +8,5 @@ "dev_type": "marsio", "flow_type": "mirror" } - ] } diff --git a/roles/tsg-cli-mcn1-3/tasks/main.yml b/roles/tsg-cli-mcn1/tasks/main.yml index dff0f21..dff0f21 100644 --- a/roles/tsg-cli-mcn1-3/tasks/main.yml +++ b/roles/tsg-cli-mcn1/tasks/main.yml diff --git a/roles/tsg-cli-mcn1-3/templates/tsg_sn.json.j2 b/roles/tsg-cli-mcn1/templates/tsg_sn.json.j2 index bceeb99..bceeb99 100644 --- a/roles/tsg-cli-mcn1-3/templates/tsg_sn.json.j2 +++ b/roles/tsg-cli-mcn1/templates/tsg_sn.json.j2 diff --git a/roles/tsg-cli-mcn2/files/tsg-monitor.service b/roles/tsg-cli-mcn2/files/tsg-monitor.service new file mode 100644 index 0000000..f61aded --- /dev/null +++ b/roles/tsg-cli-mcn2/files/tsg-monitor.service @@ -0,0 +1,15 @@ +[Unit] +Description=tsg monitor service +Requires=network.target +After=network.target + +[Service] +#WorkingDirectory=/opt/tsg/tsg-monitor/ +ExecStart=/opt/tsg/tsg-monitor/tsg-monitor.sh +#ExecStop=/bin/kill -9 $MAINPID +Type=simple +Restart=always +RestartSec=5s + +[Install] +WantedBy=multi-user.target diff --git a/roles/tsg-cli-mcn2/files/tsg-monitor.sh b/roles/tsg-cli-mcn2/files/tsg-monitor.sh new file mode 100644 index 0000000..cc287a5 --- /dev/null +++ b/roles/tsg-cli-mcn2/files/tsg-monitor.sh @@ -0,0 +1,74 @@ +#!/bin/sh + +#mcn2 + +#防止因上一次的命令阻塞或长时间未返回, +#导致10秒内还不结束, 强行杀掉, +#否则长时间运行后, 会有大量后台进程运行 +killall_uncompleted_cmd(){ + #killall -9 tsg_cluster_register + killall -9 tsg_diagnose_background + killall -9 tsg_update_tags + killall -9 tsg_monit_interface + +} + +start_background_cmd(){ + #后台并发运行, 保证所有命令的开始运行时间基本一样, + #且不会因某个命令网络拥塞、执行时间长等问题,阻塞while(1)主循环 + /opt/tsg/tsg-monitor/tsg_diagnose_background > /dev/null & + /opt/tsg/tsg-monitor/tsg_update_tags > /dev/null & + /opt/tsg/tsg-monitor/tsg_monit_interface > /dev/null & +} + +#return value: current time in ms +get_current_time_in_ms(){ + time_sec=`date +"%s"` + time_nsec=`date +"%N"` + #echo $time_sec + #echo $time_nsec + + time_epoch_ms=`echo | awk -v a=$time_sec -v b=$time_nsec '{printf("%.f"), a*1000+b/1000/1000}'` + + echo $time_epoch_ms +} + +#args: +#begin from time, in ms +#wait for n ms +sleep_for_time_ms(){ + last_time=$1 + wait_sec=$2 + #break_time=`echo | awk -v a=$last_time -v b=$wait_sec '{printf("%.f"), a+b}'` + break_time=`expr $last_time + $wait_sec` + break_time_int=`expr $break_time` + #echo "start: last_time is:$last_time, expect break timeis:$break_time!" + + current_time=0 + break_time=0 + #break_time=`expr $last_time + 1000*$1` + while [ 1 ]; do + current_time=`get_current_time_in_ms` + current_time_int=`expr $current_time` + if [ $current_time_int -ge $break_time_int ]; then + #echo "current is: $current_time_int, break_time is:$break_time_int, break!" + break + else + #echo "break is: $current_time_int, last_time is:$break_time_int, continue!" + # usleep is us + usleep 1000 + fi + done + +} + +while [ 1 ]; do + start_time=`get_current_time_in_ms` + echo tsg-monitor start at `date +"%Y/%m/%d, %H:%M:%S.%N"` >> /tmp/tsg-monitor.log + + start_background_cmd + sleep 10 + killall_uncompleted_cmd + + sleep_for_time_ms $start_time 15000 +done diff --git a/roles/tsg-cli-mcn2/files/tsg_chassis_interface.json b/roles/tsg-cli-mcn2/files/tsg_chassis_interface.json new file mode 100644 index 0000000..39c2d8f --- /dev/null +++ b/roles/tsg-cli-mcn2/files/tsg_chassis_interface.json @@ -0,0 +1,12 @@ +{ + "interface_list": [{ + "dev_name": "ens8f1", + "dev_type": "pcap", + "flow_type": "intercomm" + },{ + "dev_name": "ens8f2", + "dev_type": "marsio", + "flow_type": "mirror" + } + ] +} diff --git a/roles/tsg-cli-mcn2/tasks/main.yml b/roles/tsg-cli-mcn2/tasks/main.yml new file mode 100644 index 0000000..dff0f21 --- /dev/null +++ b/roles/tsg-cli-mcn2/tasks/main.yml @@ -0,0 +1,45 @@ +--- +- name: "copy tsg-cli rmp to destination server" + synchronize: + src: "{{ role_path }}/../tsg-common-files/{{ rpm_file_name }}" + dest: "/tmp/tsg-cli-deploy/" + +- name: "install tsg-cli" + yum: + name: "{{ packages }}" + state: present + vars: + packages: + - /tmp/tsg-cli-deploy/{{ rpm_file_name }} + +- name: Template the tsg_sn.json + template: + src: "{{ role_path }}/templates/tsg_sn.json.j2" + dest: /opt/tsg/etc/tsg_sn.json + tags: template + +- name: "copy tsg-monitor.service to destination server" + synchronize: + src: "{{ role_path }}/files/tsg-monitor.service" + dest: "/usr/lib/systemd/system" + +- name: "copy tsg_chassis_interface.json to destination server" + synchronize: + src: "{{ role_path }}/files/tsg_chassis_interface.json" + dest: "/opt/tsg/etc/" + +- name: "copy tsg-monitor.sh to destination server" + #synchronize: + copy: + src: "{{ role_path }}/files/tsg-monitor.sh" + dest: "/opt/tsg/tsg-monitor/" + mode: 0755 + +- name: "reload systemd config" + command: systemctl daemon-reload + +- name: "enable tsg-monitor service" + command: systemctl enable tsg-monitor.service + +#- name: "start tsg-monitor service" +# command: systemctl start tsg-monitor.service diff --git a/roles/tsg-cli-mcn2/templates/tsg_sn.json.j2 b/roles/tsg-cli-mcn2/templates/tsg_sn.json.j2 new file mode 100644 index 0000000..bceeb99 --- /dev/null +++ b/roles/tsg-cli-mcn2/templates/tsg_sn.json.j2 @@ -0,0 +1,3 @@ +{ + "sn": "{{ SN }}" +}
\ No newline at end of file diff --git a/roles/tsg-cli-mcn3/files/tsg-monitor.service b/roles/tsg-cli-mcn3/files/tsg-monitor.service new file mode 100644 index 0000000..f61aded --- /dev/null +++ b/roles/tsg-cli-mcn3/files/tsg-monitor.service @@ -0,0 +1,15 @@ +[Unit] +Description=tsg monitor service +Requires=network.target +After=network.target + +[Service] +#WorkingDirectory=/opt/tsg/tsg-monitor/ +ExecStart=/opt/tsg/tsg-monitor/tsg-monitor.sh +#ExecStop=/bin/kill -9 $MAINPID +Type=simple +Restart=always +RestartSec=5s + +[Install] +WantedBy=multi-user.target diff --git a/roles/tsg-cli-mcn3/files/tsg-monitor.sh b/roles/tsg-cli-mcn3/files/tsg-monitor.sh new file mode 100644 index 0000000..dcd0ca5 --- /dev/null +++ b/roles/tsg-cli-mcn3/files/tsg-monitor.sh @@ -0,0 +1,74 @@ +#!/bin/sh + +#mcn3 + +#防止因上一次的命令阻塞或长时间未返回, +#导致10秒内还不结束, 强行杀掉, +#否则长时间运行后, 会有大量后台进程运行 +killall_uncompleted_cmd(){ + #killall -9 tsg_cluster_register + killall -9 tsg_diagnose_background + killall -9 tsg_update_tags + killall -9 tsg_monit_interface + +} + +start_background_cmd(){ + #后台并发运行, 保证所有命令的开始运行时间基本一样, + #且不会因某个命令网络拥塞、执行时间长等问题,阻塞while(1)主循环 + /opt/tsg/tsg-monitor/tsg_diagnose_background > /dev/null & + /opt/tsg/tsg-monitor/tsg_update_tags > /dev/null & + /opt/tsg/tsg-monitor/tsg_monit_interface > /dev/null & +} + +#return value: current time in ms +get_current_time_in_ms(){ + time_sec=`date +"%s"` + time_nsec=`date +"%N"` + #echo $time_sec + #echo $time_nsec + + time_epoch_ms=`echo | awk -v a=$time_sec -v b=$time_nsec '{printf("%.f"), a*1000+b/1000/1000}'` + + echo $time_epoch_ms +} + +#args: +#begin from time, in ms +#wait for n ms +sleep_for_time_ms(){ + last_time=$1 + wait_sec=$2 + #break_time=`echo | awk -v a=$last_time -v b=$wait_sec '{printf("%.f"), a+b}'` + break_time=`expr $last_time + $wait_sec` + break_time_int=`expr $break_time` + #echo "start: last_time is:$last_time, expect break timeis:$break_time!" + + current_time=0 + break_time=0 + #break_time=`expr $last_time + 1000*$1` + while [ 1 ]; do + current_time=`get_current_time_in_ms` + current_time_int=`expr $current_time` + if [ $current_time_int -ge $break_time_int ]; then + #echo "current is: $current_time_int, break_time is:$break_time_int, break!" + break + else + #echo "break is: $current_time_int, last_time is:$break_time_int, continue!" + # usleep is us + usleep 1000 + fi + done + +} + +while [ 1 ]; do + start_time=`get_current_time_in_ms` + echo tsg-monitor start at `date +"%Y/%m/%d, %H:%M:%S.%N"` >> /tmp/tsg-monitor.log + + start_background_cmd + sleep 10 + killall_uncompleted_cmd + + sleep_for_time_ms $start_time 15000 +done diff --git a/roles/tsg-cli-mcn3/files/tsg_chassis_interface.json b/roles/tsg-cli-mcn3/files/tsg_chassis_interface.json new file mode 100644 index 0000000..b762b22 --- /dev/null +++ b/roles/tsg-cli-mcn3/files/tsg_chassis_interface.json @@ -0,0 +1,13 @@ +{ + "interface_list": [{ + "dev_name": "ens8f1", + "dev_type": "pcap", + "flow_type": "intercomm" + },{ + "dev_name": "ens8f2", + "dev_type": "marsio", + "flow_type": "mirror" + } + + ] +} diff --git a/roles/tsg-cli-mcn3/tasks/main.yml b/roles/tsg-cli-mcn3/tasks/main.yml new file mode 100644 index 0000000..dff0f21 --- /dev/null +++ b/roles/tsg-cli-mcn3/tasks/main.yml @@ -0,0 +1,45 @@ +--- +- name: "copy tsg-cli rmp to destination server" + synchronize: + src: "{{ role_path }}/../tsg-common-files/{{ rpm_file_name }}" + dest: "/tmp/tsg-cli-deploy/" + +- name: "install tsg-cli" + yum: + name: "{{ packages }}" + state: present + vars: + packages: + - /tmp/tsg-cli-deploy/{{ rpm_file_name }} + +- name: Template the tsg_sn.json + template: + src: "{{ role_path }}/templates/tsg_sn.json.j2" + dest: /opt/tsg/etc/tsg_sn.json + tags: template + +- name: "copy tsg-monitor.service to destination server" + synchronize: + src: "{{ role_path }}/files/tsg-monitor.service" + dest: "/usr/lib/systemd/system" + +- name: "copy tsg_chassis_interface.json to destination server" + synchronize: + src: "{{ role_path }}/files/tsg_chassis_interface.json" + dest: "/opt/tsg/etc/" + +- name: "copy tsg-monitor.sh to destination server" + #synchronize: + copy: + src: "{{ role_path }}/files/tsg-monitor.sh" + dest: "/opt/tsg/tsg-monitor/" + mode: 0755 + +- name: "reload systemd config" + command: systemctl daemon-reload + +- name: "enable tsg-monitor service" + command: systemctl enable tsg-monitor.service + +#- name: "start tsg-monitor service" +# command: systemctl start tsg-monitor.service diff --git a/roles/tsg-cli-mcn3/templates/tsg_sn.json.j2 b/roles/tsg-cli-mcn3/templates/tsg_sn.json.j2 new file mode 100644 index 0000000..bceeb99 --- /dev/null +++ b/roles/tsg-cli-mcn3/templates/tsg_sn.json.j2 @@ -0,0 +1,3 @@ +{ + "sn": "{{ SN }}" +}
\ No newline at end of file diff --git a/roles/tsg-cli-mxn/files/tsg-monitor.sh b/roles/tsg-cli-mxn/files/tsg-monitor.sh index c93efa6..34acb56 100644 --- a/roles/tsg-cli-mxn/files/tsg-monitor.sh +++ b/roles/tsg-cli-mxn/files/tsg-monitor.sh @@ -15,7 +15,10 @@ start_background_cmd(){ #后台并发运行, 保证所有命令的开始运行时间基本一样, #且不会因某个命令网络拥塞、执行时间长等问题,阻塞while(1)主循环 /opt/tsg/tsg-monitor/tsg_cluster_register > /dev/null & - #nohup /opt/tsg/tsg-monitor/tsg_diagnose_background & + + #mxn板只检测cpu, mem, disk等, 前台cli命令启用diagnose, + #后台服务依靠oam snmp模块, 无需运行tsg_diagnose_background + #/opt/tsg/tsg-monitor/tsg_diagnose_background & /opt/tsg/tsg-monitor/tsg_update_tags > /dev/null & } |
