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
|
description: Heat template that deploys PnP PNF simulators
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: ""}
vnf_id: {type: string, label: VNF ID, description: The VNF ID is provided by ONAP}
vf_module_id: {type: string, label: vBase module ID, description: The vBase Module ID is provided by ONAP}
resources:
PNF_PnP_simulator:
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_simulator_port0 }
user_data_format: RAW
user_data:
str_replace:
template: |
#!/bin/bash
set_versions () {
DOCKER_VERSION=17.03
DOCKER_COMPOSE_VERSION=1.22.0
}
set_proxy () {
HTTP_PROXY=$proxy
HTTPS_PROXY=$proxy
http_proxy=$proxy
https_proxy=$proxy
export HTTP_PROXY=$proxy
export HTTPS_PROXY=$proxy
export http_proxy=$proxy
export https_proxy=$proxy
}
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 () {
rm -rf /var/lib/apt/lists/*
apt-get clean
apt-get update
}
set_apt_get_proxy () {
cat > /etc/apt/apt.conf.d/proxy.conf << EOF
Acquire {
HTTP::proxy "$proxy";
HTTPS::proxy "$proxy";
}
EOF
}
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 () {
curl "https://releases.rancher.com/install-docker/$DOCKER_VERSION.sh" | sh
mkdir -p /etc/systemd/system/docker.service.d/
cat > /etc/systemd/system/docker.service.d/docker.conf << EOF
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry=nexus3.onap.org:10003
Environment="HTTP_PROXY=$proxy"
Environment="HTTPS_PROXY=$proxy"
EOF
systemctl daemon-reload
systemctl restart docker
apt-mark hold docker-ce
docker login -u docker -p docker nexus3.onap.org:10003
}
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
}
start_pnf_simulator () {
docker login -u docker -p docker nexus3.onap.org:10003
cd ~/integration/test/mocks/pnfsimulator/pnfsimulator
docker-compose up -d
}
start_netconf_simulator () {
docker login -u docker -p docker nexus3.onap.org:10003
cd ~/integration/test/mocks/pnfsimulator/netconfsimulator
docker-compose up -d
}
set_versions
set_proxy
enable_root_ssh
set_apt_get_proxy
docker_install_and_configure
docker_compose_install
pnf_sim_file_checkout
start_pnf_simulator
start_netconf_simulator
params:
$proxy: { get_param: proxy }
PNF_PnP_simulator_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_simulator_public:
type: OS::Neutron::FloatingIP
properties:
floating_network_id: { get_param: public_net_id }
port_id: { get_resource: PNF_PnP_simulator_port0 }
outputs:
PNF_PnP_simulator_private_ip:
description: IP address of PNF_PnP_simulator in private network
value: { get_attr: [ PNF_PnP_simulator, first_address ] }
PNF_PnP_simulator_public_ip:
description: Floating IP address of PNF_PnP_simulator in public network
value: { get_attr: [ PNF_PnP_simulator_public, floating_ip_address ] }
|