commit 0064af7061f90071b98f7249560e29f47ac96830 Author: lijia Date: Tue Sep 17 18:18:25 2019 +0800 create new project. diff --git a/hosts.huayan b/hosts.huayan new file mode 100644 index 0000000..3f5fe7c --- /dev/null +++ b/hosts.huayan @@ -0,0 +1,28 @@ +[all:vars] +ansible_user=root +rpm_file_name=tsg-cli-1.0.6-1.el7.x86_64.rpm + +[sled-mxn] +192.168.10.45 SN=CBT2201925000001 + +[sled-mcn0] +192.168.10.41 SN=CBT2201925000001 + +[sled-mcn1] +192.168.10.42 SN=CBT2201925000001 + +[sled-mcn2] +192.168.10.43 SN=CBT2201925000001 + +[sled-mcn3] +192.168.10.44 SN=CBT2201925000001 + +[tsg-all:children] +sled-mxn +sled-mcn0 +sled-mcn1 +sled-mcn2 +sled-mcn3 + + + diff --git a/roles/tsg-cli-mcn0/files/tsg-monitor.service b/roles/tsg-cli-mcn0/files/tsg-monitor.service new file mode 100644 index 0000000..9e193df --- /dev/null +++ b/roles/tsg-cli-mcn0/files/tsg-monitor.service @@ -0,0 +1,16 @@ +[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=/home/tsg/kni/kni_service_scipt stop +#ExecStop=/bin/kill -9 $MAINPID +Type=simple +Restart=always +RestartSec=5s + +[Install] +WantedBy=multi-user.target diff --git a/roles/tsg-cli-mcn0/files/tsg-monitor.sh b/roles/tsg-cli-mcn0/files/tsg-monitor.sh new file mode 100644 index 0000000..ff78351 --- /dev/null +++ b/roles/tsg-cli-mcn0/files/tsg-monitor.sh @@ -0,0 +1,87 @@ +#!/bin/sh + +#mcn0 + +#防止因上一次的命令阻塞或长时间未返回, +#导致10秒内还不结束, 强行杀掉, +#否则长时间运行后, 会有大量后台进程运行 +killall_uncompleted_cmd(){ + #killall -9 tsg_cluster_register + killall -9 tsg_diagnose_background + killall -9 tsg_update_tags + + killall -9 tsg_monit_app + killall -9 tsg_monit_intercept + killall -9 tsg_monit_interface + killall -9 tsg_monit_protocol_v3 + killall -9 tsg_monit_protocol_v4 + killall -9 tsg_monit_stream_v3 + killall -9 tsg_monit_stream_v4 +} + +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_app > /dev/null & + /opt/tsg/tsg-monitor/tsg_monit_intercept > /dev/null & + /opt/tsg/tsg-monitor/tsg_monit_interface > /dev/null & + /opt/tsg/tsg-monitor/tsg_monit_protocol_v3 > /dev/null & + /opt/tsg/tsg-monitor/tsg_monit_protocol_v4 > /dev/null & + /opt/tsg/tsg-monitor/tsg_monit_stream_v3 > /dev/null & + /opt/tsg/tsg-monitor/tsg_monit_stream_v4 > /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-mcn0/files/tsg_chassis_interface.json b/roles/tsg-cli-mcn0/files/tsg_chassis_interface.json new file mode 100644 index 0000000..be40ac9 --- /dev/null +++ b/roles/tsg-cli-mcn0/files/tsg_chassis_interface.json @@ -0,0 +1,16 @@ +{ + "local_chassis_node": "mcn0", + "interface_list": [ + { + "dev_name": "ens1f4", + "dev_type": "marsio", + "flow_type": "inline" + }, + { + "dev_name": "ens1f5", + "dev_type": "marsio", + "flow_type": "inline" + } + + ] +} diff --git a/roles/tsg-cli-mcn0/tasks/main.yml b/roles/tsg-cli-mcn0/tasks/main.yml new file mode 100644 index 0000000..a15b827 --- /dev/null +++ b/roles/tsg-cli-mcn0/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 main.conf + 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-mcn0/templates/tsg_sn.json.j2 b/roles/tsg-cli-mcn0/templates/tsg_sn.json.j2 new file mode 100644 index 0000000..bceeb99 --- /dev/null +++ b/roles/tsg-cli-mcn0/templates/tsg_sn.json.j2 @@ -0,0 +1,3 @@ +{ + "sn": "{{ SN }}" +} \ No newline at end of file diff --git a/roles/tsg-cli-mcn1-3/files/tsg-monitor.service b/roles/tsg-cli-mcn1-3/files/tsg-monitor.service new file mode 100644 index 0000000..f61aded --- /dev/null +++ b/roles/tsg-cli-mcn1-3/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-mcn1-3/files/tsg-monitor.sh b/roles/tsg-cli-mcn1-3/files/tsg-monitor.sh new file mode 100644 index 0000000..3b15808 --- /dev/null +++ b/roles/tsg-cli-mcn1-3/files/tsg-monitor.sh @@ -0,0 +1,75 @@ +#!/bin/sh + +#mcn1-3 + +#防止因上一次的命令阻塞或长时间未返回, +#导致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-mcn1-3/files/tsg_chassis_interface.json b/roles/tsg-cli-mcn1-3/files/tsg_chassis_interface.json new file mode 100644 index 0000000..9f84b50 --- /dev/null +++ b/roles/tsg-cli-mcn1-3/files/tsg_chassis_interface.json @@ -0,0 +1,13 @@ +{ + "interface_list": [{ + "dev_name": "ens1f1", + "dev_type": "pcap", + "flow_type": "intercomm" + },{ + "dev_name": "ens1f2", + "dev_type": "marsio", + "flow_type": "mirror" + } + + ] +} diff --git a/roles/tsg-cli-mcn1-3/tasks/main.yml b/roles/tsg-cli-mcn1-3/tasks/main.yml new file mode 100644 index 0000000..dff0f21 --- /dev/null +++ b/roles/tsg-cli-mcn1-3/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-mcn1-3/templates/tsg_sn.json.j2 b/roles/tsg-cli-mcn1-3/templates/tsg_sn.json.j2 new file mode 100644 index 0000000..bceeb99 --- /dev/null +++ b/roles/tsg-cli-mcn1-3/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.service b/roles/tsg-cli-mxn/files/tsg-monitor.service new file mode 100644 index 0000000..f7f29a5 --- /dev/null +++ b/roles/tsg-cli-mxn/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 $MAINPID +Type=simple +Restart=always +RestartSec=5s + +[Install] +WantedBy=multi-user.target diff --git a/roles/tsg-cli-mxn/files/tsg-monitor.sh b/roles/tsg-cli-mxn/files/tsg-monitor.sh new file mode 100644 index 0000000..c93efa6 --- /dev/null +++ b/roles/tsg-cli-mxn/files/tsg-monitor.sh @@ -0,0 +1,72 @@ +#!/bin/sh + +#mxn + +#防止因上一次的命令阻塞或长时间未返回, +#导致10秒内还不结束, 要强行杀掉, +#否则长时间运行后, 会有大量后台进程运行! +killall_uncompleted_cmd(){ + killall -9 tsg_cluster_register + #killall -9 tsg_diagnose_background + killall -9 tsg_update_tags +} + +start_background_cmd(){ + #后台并发运行, 保证所有命令的开始运行时间基本一样, + #且不会因某个命令网络拥塞、执行时间长等问题,阻塞while(1)主循环 + /opt/tsg/tsg-monitor/tsg_cluster_register > /dev/null & + #nohup /opt/tsg/tsg-monitor/tsg_diagnose_background & + /opt/tsg/tsg-monitor/tsg_update_tags > /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-mxn/tasks/main.yml b/roles/tsg-cli-mxn/tasks/main.yml new file mode 100644 index 0000000..581d5b5 --- /dev/null +++ b/roles/tsg-cli-mxn/tasks/main.yml @@ -0,0 +1,40 @@ +--- +- 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-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 \ No newline at end of file diff --git a/roles/tsg-cli-mxn/templates/tsg_sn.json.j2 b/roles/tsg-cli-mxn/templates/tsg_sn.json.j2 new file mode 100644 index 0000000..bceeb99 --- /dev/null +++ b/roles/tsg-cli-mxn/templates/tsg_sn.json.j2 @@ -0,0 +1,3 @@ +{ + "sn": "{{ SN }}" +} \ No newline at end of file diff --git a/roles/tsg-env-mcn0/files/setup b/roles/tsg-env-mcn0/files/setup new file mode 100644 index 0000000..1229381 --- /dev/null +++ b/roles/tsg-env-mcn0/files/setup @@ -0,0 +1,28 @@ +#!/bin/bash + + ifconfig ens1 up + + modprobe 8021q + vconfig add ens1 100 + vconfig set_flag ens1.100 1 1 + ifconfig ens1.100 192.168.100.1 netmask 255.255.255.0 up + + echo 0 > /sys/class/net/ens1/device/sriov_numvfs + sleep 1 + echo 8 > /sys/class/net/ens1/device/sriov_numvfs + sleep 1 + + ifconfig ens1f3 up + ip link set ens1 vf 2 vlan 200 + ifconfig ens1f3 192.168.200.1 netmask 255.255.255.0 + +ifconfig enp7s0 up +ifconfig enp8s0 up +ifconfig ens1f1 up +ifconfig ens1f2 up +ifconfig ens1f3 up +ifconfig ens1f4 up +ifconfig ens1f5 up +ifconfig ens1f6 up +ifconfig ens1f7 up +ifconfig enp1s1 up diff --git a/roles/tsg-env-mcn0/files/tsg-env.service b/roles/tsg-env-mcn0/files/tsg-env.service new file mode 100644 index 0000000..8c49bce --- /dev/null +++ b/roles/tsg-env-mcn0/files/tsg-env.service @@ -0,0 +1,18 @@ +[Unit] +Description=tsg env init +Requires=network.target +After=network.target +Before=mrenv.service + +[Service] +#WorkingDirectory=/opt/tsg/env +ExecStart=/opt/tsg/env/setup +#ExecStop=/home/tsg/kni/kni_service_scipt stop +#ExecStop=/bin/kill -9 $MAINPID +Type=oneshot +RemainAfterExit=yes +#Restart=always +#RestartSec=5s + +[Install] +WantedBy=multi-user.target diff --git a/roles/tsg-env-mcn0/tasks/main.yml b/roles/tsg-env-mcn0/tasks/main.yml new file mode 100644 index 0000000..7f54bd3 --- /dev/null +++ b/roles/tsg-env-mcn0/tasks/main.yml @@ -0,0 +1,19 @@ +--- +- name: "copy setup.sh" + copy: + src: "{{ role_path }}/files/setup" + dest: "/opt/tsg/env/" + mode: 0755 + +- name: "copy tsg-env.service" + copy: + src: "{{ role_path }}/files/tsg-env.service" + dest: "/usr/lib/systemd/system/" + mode: 0644 + +- name: "enable tsg-env" + systemd: + name: tsg-env + enabled: yes + daemon_reload: yes + diff --git a/roles/tsg-env-mcn1/files/setup b/roles/tsg-env-mcn1/files/setup new file mode 100644 index 0000000..f86bcfa --- /dev/null +++ b/roles/tsg-env-mcn1/files/setup @@ -0,0 +1,25 @@ +#!/bin/bash + + ifconfig ens1 up + + + modprobe 8021q + vconfig add ens1 100 + vconfig set_flag ens1.100 1 1 + ifconfig ens1.100 192.168.100.2 netmask 255.255.255.0 up + + echo 0 > /sys/class/net/ens1/device/sriov_numvfs + sleep 1 + echo 3 > /sys/class/net/ens1/device/sriov_numvfs + sleep 1 + + ifconfig ens1f3 up + ip link set ens1 vf 2 vlan 200 + ifconfig ens1f3 192.168.200.2 netmask 255.255.255.0 + +ifconfig enp7s0 up +ifconfig enp8s0 up +ifconfig ens1f1 up +ifconfig ens1f2 up +ifconfig ens1f3 up + diff --git a/roles/tsg-env-mcn1/files/tsg-env.service b/roles/tsg-env-mcn1/files/tsg-env.service new file mode 100644 index 0000000..8c49bce --- /dev/null +++ b/roles/tsg-env-mcn1/files/tsg-env.service @@ -0,0 +1,18 @@ +[Unit] +Description=tsg env init +Requires=network.target +After=network.target +Before=mrenv.service + +[Service] +#WorkingDirectory=/opt/tsg/env +ExecStart=/opt/tsg/env/setup +#ExecStop=/home/tsg/kni/kni_service_scipt stop +#ExecStop=/bin/kill -9 $MAINPID +Type=oneshot +RemainAfterExit=yes +#Restart=always +#RestartSec=5s + +[Install] +WantedBy=multi-user.target diff --git a/roles/tsg-env-mcn1/tasks/main.yml b/roles/tsg-env-mcn1/tasks/main.yml new file mode 100644 index 0000000..bcaf226 --- /dev/null +++ b/roles/tsg-env-mcn1/tasks/main.yml @@ -0,0 +1,18 @@ +--- +- name: "copy setup.sh" + copy: + src: "{{ role_path }}/files/setup" + dest: "/opt/tsg/env/" + mode: 0755 + +- name: "copy tsg-env.service" + copy: + src: "{{ role_path }}/files/tsg-env.service" + dest: "/usr/lib/systemd/system/" + mode: 0644 + +- name: "enable tsg-env" + systemd: + name: tsg-env + enabled: yes + daemon_reload: yes diff --git a/roles/tsg-env-mcn2/files/setup b/roles/tsg-env-mcn2/files/setup new file mode 100644 index 0000000..a09b140 --- /dev/null +++ b/roles/tsg-env-mcn2/files/setup @@ -0,0 +1,23 @@ +#!/bin/bash + ifconfig ens8 up + + modprobe 8021q + vconfig add ens8 100 + vconfig set_flag ens8.100 1 1 + ifconfig ens8.100 192.168.100.3 netmask 255.255.255.0 up + + echo 0 > /sys/class/net/ens8/device/sriov_numvfs + sleep 1 + echo 3 > /sys/class/net/ens8/device/sriov_numvfs + sleep 1 + + ifconfig ens8f3 up + ip link set ens8 vf 2 vlan 200 + ifconfig ens8f3 192.168.200.3 netmask 255.255.255.0 + +ifconfig enp7s0 up +ifconfig enp8s0 up +ifconfig ens8f1 up +ifconfig ens8f2 up +ifconfig ens8f3 up +ifconfig ens8f4 up \ No newline at end of file diff --git a/roles/tsg-env-mcn2/files/tsg-env.service b/roles/tsg-env-mcn2/files/tsg-env.service new file mode 100644 index 0000000..8c49bce --- /dev/null +++ b/roles/tsg-env-mcn2/files/tsg-env.service @@ -0,0 +1,18 @@ +[Unit] +Description=tsg env init +Requires=network.target +After=network.target +Before=mrenv.service + +[Service] +#WorkingDirectory=/opt/tsg/env +ExecStart=/opt/tsg/env/setup +#ExecStop=/home/tsg/kni/kni_service_scipt stop +#ExecStop=/bin/kill -9 $MAINPID +Type=oneshot +RemainAfterExit=yes +#Restart=always +#RestartSec=5s + +[Install] +WantedBy=multi-user.target diff --git a/roles/tsg-env-mcn2/tasks/main.yml b/roles/tsg-env-mcn2/tasks/main.yml new file mode 100644 index 0000000..bcaf226 --- /dev/null +++ b/roles/tsg-env-mcn2/tasks/main.yml @@ -0,0 +1,18 @@ +--- +- name: "copy setup.sh" + copy: + src: "{{ role_path }}/files/setup" + dest: "/opt/tsg/env/" + mode: 0755 + +- name: "copy tsg-env.service" + copy: + src: "{{ role_path }}/files/tsg-env.service" + dest: "/usr/lib/systemd/system/" + mode: 0644 + +- name: "enable tsg-env" + systemd: + name: tsg-env + enabled: yes + daemon_reload: yes diff --git a/roles/tsg-env-mcn3/files/setup b/roles/tsg-env-mcn3/files/setup new file mode 100644 index 0000000..3c46a51 --- /dev/null +++ b/roles/tsg-env-mcn3/files/setup @@ -0,0 +1,21 @@ +#!/bin/bash + ifconfig ens8 up + + modprobe 8021q + vconfig add ens8 100 + vconfig set_flag ens8.100 1 1 + ifconfig ens8.100 192.168.100.4 netmask 255.255.255.0 up + + echo 0 > /sys/class/net/ens8/device/sriov_numvfs + sleep 1 + echo 3 > /sys/class/net/ens8/device/sriov_numvfs + sleep 1 + + ifconfig ens8f3 up + ip link set ens8 vf 2 vlan 200 + ifconfig ens8f3 192.168.200.4 netmask 255.255.255.0 +ifconfig enp7s0 up +ifconfig enp8s0 up +ifconfig ens8f1 up +ifconfig ens8f2 up +ifconfig ens8f3 up \ No newline at end of file diff --git a/roles/tsg-env-mcn3/files/tsg-env.service b/roles/tsg-env-mcn3/files/tsg-env.service new file mode 100644 index 0000000..8c49bce --- /dev/null +++ b/roles/tsg-env-mcn3/files/tsg-env.service @@ -0,0 +1,18 @@ +[Unit] +Description=tsg env init +Requires=network.target +After=network.target +Before=mrenv.service + +[Service] +#WorkingDirectory=/opt/tsg/env +ExecStart=/opt/tsg/env/setup +#ExecStop=/home/tsg/kni/kni_service_scipt stop +#ExecStop=/bin/kill -9 $MAINPID +Type=oneshot +RemainAfterExit=yes +#Restart=always +#RestartSec=5s + +[Install] +WantedBy=multi-user.target diff --git a/roles/tsg-env-mcn3/tasks/main.yml b/roles/tsg-env-mcn3/tasks/main.yml new file mode 100644 index 0000000..bcaf226 --- /dev/null +++ b/roles/tsg-env-mcn3/tasks/main.yml @@ -0,0 +1,18 @@ +--- +- name: "copy setup.sh" + copy: + src: "{{ role_path }}/files/setup" + dest: "/opt/tsg/env/" + mode: 0755 + +- name: "copy tsg-env.service" + copy: + src: "{{ role_path }}/files/tsg-env.service" + dest: "/usr/lib/systemd/system/" + mode: 0644 + +- name: "enable tsg-env" + systemd: + name: tsg-env + enabled: yes + daemon_reload: yes diff --git a/tsg-cli-playbook.yml b/tsg-cli-playbook.yml new file mode 100644 index 0000000..d668f7e --- /dev/null +++ b/tsg-cli-playbook.yml @@ -0,0 +1,24 @@ +--- +- hosts: sled-mxn + roles: + - tsg-cli-mxn + +- hosts: sled-mcn0 + roles: + - tsg-cli-mcn0 + - tsg-env-mcn0 + +- hosts: sled-mcn1 + roles: + - tsg-cli-mcn1-3 + - tsg-env-mcn1 + +- hosts: sled-mcn2 + roles: + - tsg-cli-mcn1-3 + - tsg-env-mcn2 + +- hosts: sled-mcn3 + roles: + - tsg-cli-mcn1-3 + - tsg-env-mcn3 \ No newline at end of file