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
|
description: Heat template that deploys PnP PNF simulator
heat_template_version: '2013-05-23'
parameters:
flavor_name: {description: Type of instance (flavor) to be used, label: Flavor,
type: string}
image_name: {description: Image to be used for compute instance, label: Image name
or ID, type: string}
key_name: {description: Public/Private key pair name, label: Key pair name, type: string}
public_net_id: {description: Public network that enables remote connection to VNF,
label: Public network name or ID, type: string}
private_net_id: {type: string, description: Private network id, label: Private network name or ID}
private_subnet_id: {type: string, description: Private subnet id, label: Private subnetwork name or ID}
proxy: {type: string, description: Proxy, label: Proxy, default: ""}
resources:
PNF_PnP_simualtor:
type: OS::Nova::Server
properties:
key_name: { get_param: key_name }
image: { get_param: image_name }
flavor: { get_param: flavor_name }
networks:
- port: { get_resource: PNF_PnP_simualtor_port0 }
user_data_format: RAW
user_data:
str_replace:
template: |
#!/bin/bash
set_versions () {
DOCKER_COMPOSE_VERSION=1.22.0
}
enable_root_ssh () {
sed -i 's/PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
sed -i 's/PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config
service sshd restart
echo -e "arthur\narthur" | passwd root
}
update_os () {
dnf -y install fedora-upgrade
}
docker_remove () {
dnf -y remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
}
docker_install_and_configure () {
dnf -y install dnf-plugins-core
dnf config-manager \
--add-repo \
https://download.docker.com/linux/fedora/docker-ce.repo
dnf -y install docker-ce
systemctl start docker
mkdir -p /etc/systemd/system/docker.service.d/
cat > /etc/systemd/system/docker.service.d/override.conf<< EOF
[Service]
Environment="HTTP_PROXY=$proxy"
Environment="HTTPS_PROXY=$proxy"
EOF
systemctl daemon-reload
systemctl restart docker
}
docker_compose_install () {
curl -L https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
}
pnf_sim_file_checkout () {
cd /root; git clone https://gerrit.onap.org/r/integration
printf "{\n "simulatorParams": {\n "vesServerUrl": "http://VES-HOST:VES-PORT/eventListener/v7",\n "testDuration": "10",\n "messageInterval": "1"\n },\n "commonEventHeaderParams": {\n "eventName": "pnfRegistration_Nokia_5gDu",\n "nfNamingCode": "gNB",\n "nfcNamingCode": "oam",\n "sourceName": "NOK6061ZW3",\n "sourceId": "val13",\n "reportingEntityName": "NOK6061ZW3"\n },\n "pnfRegistrationParams": {\n "serialNumber": "6061ZW3",\n "vendorName": "Nokia",\n "oamV4IpAddress": "val3",\n "oamV6IpAddress": "val4",\n "unitFamily": "BBU",\n "modelNumber": "val6",\n "softwareVersion": "val7",\n "unitType": "val8"\n }\n}" > integration/test/mocks/pnfsimulator/config/config.json
}
start_simulator () {
docker login -u docker -p docker nexus3.onap.org:10003
cd ~/integration/test/mocks/pnfsimulator
./simulator.sh start
}
set_versions
enable_root_ssh
update_os
docker_remove
docker_install_and_configure
docker_compose_install
pnf_sim_file_checkout
start_simulator
params:
$proxy: { get_param: proxy }
PNF_PnP_simualtor_port0:
type: OS::Neutron::Port
properties:
network_id: { get_param: private_net_id }
security_groups:
- default
fixed_ips:
- subnet_id: { get_param: private_subnet_id }
PNF_PnP_simualtor_public:
type: OS::Neutron::FloatingIP
properties:
floating_network_id: { get_param: public_net_id }
port_id: { get_resource: PNF_PnP_simualtor_port0 }
outputs:
PNF_PnP_simualtor_private_ip:
description: IP address of PNF_PnP_simualtor in private network
value: { get_attr: [ PNF_PnP_simualtor, first_address ] }
PNF_PnP_simualtor_public_ip:
description: Floating IP address of PNF_PnP_simualtor in public network
value: { get_attr: [ PNF_PnP_simualtor_public, floating_ip_address ] }
|