blob: 73612a005f03a8c6c5bfe67ec20c1d3c1e8d7e8e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
heat_template_version: 2013-05-23
description: Heat template to deploy ubuntu VM Closed Loop for ONAP
parameters:
# Metadata required by ONAP
vnf_name:
type: string
label: VM name
description: The VM name
vnf_id:
type: string
label: VNF ID
description: The VNF ID is provided by ONAP
vf_module_id:
type: string
label: VF module ID
description: The VF Module ID is provided by ONAP
# Server parameters, naming required by ONAP
ubuntu18_image_name:
type: string
label: Image name or ID
description: Image to be used for compute instance
ubuntu18_flavor_name:
type: string
label: Flavor
description: Type of instance (flavor) to be used
ubuntu18_pub_key:
type: string
label: Public key
description: Public key to be installed on the compute instance
ubuntu18_name_0:
type: string
label: VM name
description: The VM name
# Network parameters, naming required by ONAP
admin_plane_net_name:
type: string
label: management network
description: The external management network
# DCAE parameters
dcae_collector_ip:
type: string
label: DCAE collector IP address
description: IP address of the DCAE collector
dcae_collector_port:
type: string
label: DCAE collector port
description: Port of the DCAE collector
resources:
random-str:
type: OS::Heat::RandomString
properties:
length: 4
ubuntu18_instantiated_key_name:
type: OS::Nova::KeyPair
properties:
name:
str_replace:
template: pre_base_rand
params:
pre: key_
base: { get_param: vnf_name }
rand: { get_resource: random-str }
public_key: { get_param: ubuntu18_pub_key }
save_private_key: false
ubuntu18_admin_security_group:
type: OS::Neutron::SecurityGroup
properties:
description: security group
name:
str_replace:
template: pre_base_rand
params:
pre: sg_
base: { get_param: vnf_name }
rand: { get_resource: random-str }
rules: [
{remote_ip_prefix: 0.0.0.0/0, protocol: tcp, port_range_min: 22, port_range_max: 22},
{remote_ip_prefix: 0.0.0.0/0, protocol: icmp}]
ubuntu18_0_admin_plane_port_0:
type: OS::Neutron::Port
properties:
name:
str_replace:
template: pre_base_rand
params:
pre: port_
base: { get_param: vnf_name }
rand: { get_resource: random-str }
network: { get_param: admin_plane_net_name }
security_groups: [{ get_resource: ubuntu18_admin_security_group }]
ubuntu18_VM_settings:
type: OS::Heat::SoftwareConfig
properties:
config: |
#!/bin/bash
sudo apt-get update
ubuntu18_server_0:
type: OS::Nova::Server
properties:
image: { get_param: ubuntu18_image_name }
flavor: { get_param: ubuntu18_flavor_name }
name: { get_param: ubuntu18_name_0 }
metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }, vnf_name: { get_param: vnf_name }}
key_name: { get_resource: ubuntu18_instantiated_key_name }
networks:
- port: { get_resource: ubuntu18_0_admin_plane_port_0 }
user_data_format: RAW
user_data:
str_replace:
params:
__dcae_collector_ip__: { get_param: dcae_collector_ip }
__dcae_collector_port__: { get_param: dcae_collector_port }
template: |
#!/bin/bash
# Create configuration files
sudo mkdir /opt/config
echo __dcae_collector_ip__ > /opt/config/dcae_collector_ip.txt
echo __dcae_collector_port__ > /opt/config/dcae_collector_port.txt
cd /opt
sudo apt-get update
sudo apt-get install --allow-unauthenticated -y make gcc rpl
sudo apt-get update && sudo apt-get -y upgrade
sudo apt-get install -y libcurl4-openssl-dev
sudo git clone https://github.com/onap/vnfsdk-ves-agent.git
sudo cp -r vnfsdk-ves-agent/veslibrary/ves_clibrary/ /opt
sudo rm -rf /opt/vnfsdk-ves-agent/
sudo chmod +x /opt/ves_clibrary/evel/evel-library/code/VESreporting_vFW/go-client.sh
cd /opt/ves_clibrary/evel/evel-library/bldjobs/
sudo mv ../code/VESreporting_vFW ../code/VESreporting
# choose HTTPS
sudo rpl "0, /* HTTPS?" "1, /* HTTPS?" ../code/VESreporting/vpp_measurement_reporter.c
sudo make clean
sudo make all
sudo sleep 1
cd /opt/ves_clibrary/evel/evel-library/libs/x86_64
sudo cp libevel.so /usr/lib
sudo ldconfig
# Start VES client
cd /opt/ves_clibrary/evel/evel-library/code/VESreporting/
./go-client.sh &>/dev/null &disown
#get_resource: ubuntu18_VM_settings
|