NFP (contrib) - Devstack and Diskimage Create Scripts
This changeset contains the following
(1) Changes to the NFP devstack to support configurator
(2) Changes to the NFP diskimage build script to build
configurator disk image
Change-Id: I1717e07b82073945752549c254ed8a39ce7257ff
Implements: blueprint gbp-network-services-framework
Co-Authored-By: Deepak S <in.live.in@live.in>
Co-Authored-By: ashutosh mishra <mca.ashu4@gmail.com>
This commit is contained in:
committed by
Hemanth Ravi
parent
8f7eff3ee4
commit
535ed048c1
442
devstack/lib/nfp
442
devstack/lib/nfp
@@ -1,27 +1,49 @@
|
||||
#!/bin/bash
|
||||
# lib/nfp
|
||||
# functions - functions specific to nfp implementation
|
||||
|
||||
# Dependencies:
|
||||
# ``functions`` file
|
||||
# ``DEST`` must be defined
|
||||
|
||||
# ``stack.sh`` calls the entry points in this order:
|
||||
#
|
||||
# - prepare_nfp_image_builder
|
||||
# - install_nfpgbpservice
|
||||
# - init_nfpgbpservice
|
||||
# - assign_user_role_credential
|
||||
# - create_nfp_gbp_resources
|
||||
# - create_nfp_image
|
||||
# - launch_configuratorVM
|
||||
# - copy_nfp_files_and_start_process
|
||||
#
|
||||
# ``unstack.sh`` calls the entry points in this order:
|
||||
|
||||
# Set up default directories
|
||||
DEVSTACK_DIR=$PWD
|
||||
NFPSERVICE_DIR=$DEST/gbp
|
||||
DISK_IMAGE_DIR=$DEST/gbp/gbpservice/tests/contrib
|
||||
TOP_DIR=$PWD
|
||||
|
||||
NEUTRON_CONF_DIR=/etc/neutron
|
||||
NEUTRON_CONF=$NEUTRON_CONF_DIR/neutron.conf
|
||||
|
||||
NFP_CONF_DIR=/etc/nfp
|
||||
echo "TOP-DIR-NFP : $PWD"
|
||||
DISKIMAGE_CREATE_DIR=$NFPSERVICE_DIR/gbpservice/tests/contrib/diskimage-create
|
||||
|
||||
# Save trace setting
|
||||
XTRACE=$(set +o | grep xtrace)
|
||||
set +o xtrace
|
||||
|
||||
# Functions
|
||||
# ---------
|
||||
|
||||
# prepare_nfp_image_builder() - Install the requirements for dib
|
||||
function prepare_nfp_image_builder {
|
||||
#setup_develop $NFPSERVICE_DIR
|
||||
sudo -H -E pip install -r $DISK_IMAGE_DIR/diskimage-create/requirements.txt
|
||||
sudo -H -E pip install -r $DISKIMAGE_CREATE_DIR/requirements.txt
|
||||
sudo apt-get install -y --force-yes qemu-utils
|
||||
sudo apt-get install -y --force-yes dpkg-dev
|
||||
if [[ $NFP_DEVSTACK_MODE = advanced ]]; then
|
||||
sudo wget -qO- https://get.docker.com/ | bash
|
||||
fi
|
||||
}
|
||||
|
||||
function init_nfpgbpservice {
|
||||
# Run GBP db migrations
|
||||
gbp-db-manage --config-file $NEUTRON_CONF --config-file /$Q_PLUGIN_CONF_FILE upgrade head
|
||||
iniset $NEUTRON_CONF DEFAULT policy_dirs $NFP_CONF_DIR
|
||||
}
|
||||
|
||||
# install_nfpgbpservice() - Collect source and prepare
|
||||
function install_nfpgbpservice {
|
||||
git_clone $GBPSERVICE_REPO $NFPSERVICE_DIR $GBPSERVICE_BRANCH
|
||||
mv $NFPSERVICE_DIR/test-requirements.txt $NFPSERVICE_DIR/_test-requirements.txt
|
||||
@@ -31,29 +53,268 @@ function install_nfpgbpservice {
|
||||
mv $NFPSERVICE_DIR/_test-requirements.txt $NFPSERVICE_DIR/test-requirements.txt
|
||||
}
|
||||
|
||||
function create_nfp_image {
|
||||
TOP_DIR=$TOP_DIR
|
||||
sudo python $DISK_IMAGE_DIR/diskimage-create/disk_image_create.py $DISK_IMAGE_DIR/diskimage-create/conf.json
|
||||
BUILT_IMAGE_PATH=$(cat /tmp/nfp_image_path)
|
||||
upload_image file://$BUILT_IMAGE_PATH $TOKEN
|
||||
|
||||
openstack --os-cloud=devstack-admin flavor create --ram 512 --disk 3 --vcpus 1 m1.nfp-tiny
|
||||
# init_nfpgbpservice() - Initialize databases, etc.
|
||||
function init_nfpgbpservice {
|
||||
# Run GBP db migrations
|
||||
gbp-db-manage --config-file $NEUTRON_CONF --config-file /$Q_PLUGIN_CONF_FILE upgrade head
|
||||
iniset $NEUTRON_CONF DEFAULT policy_dirs $NFP_CONF_DIR
|
||||
}
|
||||
|
||||
# assign_user_role_credential() - Assign Service role to the users
|
||||
function assign_user_role_credential {
|
||||
TOP_DIR=$TOP_DIR
|
||||
source $TOP_DIR/openrc admin admin
|
||||
#set -x
|
||||
source $DEVSTACK_DIR/openrc admin admin
|
||||
|
||||
serviceTenantID=`keystone tenant-list | grep "service" | awk '{print $2}'`
|
||||
serviceRoleID=`keystone role-list | grep "service" | awk '{print $2}'`
|
||||
adminRoleID=`keystone role-list | grep "admin" | awk '{print $2}'`
|
||||
keystone user-role-add --user nova --tenant $serviceTenantID --role $serviceRoleID
|
||||
keystone user-role-add --user neutron --tenant $serviceTenantID --role $adminRoleID
|
||||
|
||||
keystone user-role-add\
|
||||
--user nova\
|
||||
--tenant $serviceTenantID\
|
||||
--role $serviceRoleID
|
||||
|
||||
keystone user-role-add\
|
||||
--user neutron\
|
||||
--tenant $serviceTenantID\
|
||||
--role $adminRoleID
|
||||
}
|
||||
|
||||
# create_ext_net() - Create an external network
|
||||
function create_ext_net {
|
||||
source $DEVSTACK_DIR/stackrc
|
||||
|
||||
EXT_NET_NAME=ext-net
|
||||
EXT_NET_SUBNET_NAME=ext-net-subnet
|
||||
EXT_NET_GATEWAY=$EXT_NET_GATEWAY
|
||||
EXT_NET_ALLOCATION_POOL_START=$EXT_NET_ALLOCATION_POOL_START
|
||||
EXT_NET_ALLOCATION_POOL_END=$EXT_NET_ALLOCATION_POOL_END
|
||||
EXT_NET_CIDR=$EXT_NET_CIDR
|
||||
|
||||
neutron net-create\
|
||||
--router:external=true\
|
||||
--shared\
|
||||
$EXT_NET_NAME
|
||||
|
||||
neutron subnet-create\
|
||||
--ip_version 4\
|
||||
--gateway $EXT_NET_GATEWAY\
|
||||
--name $EXT_NET_SUBNET_NAME\
|
||||
--allocation-pool start=$EXT_NET_ALLOCATION_POOL_START,end=$EXT_NET_ALLOCATION_POOL_END\
|
||||
$EXT_NET_NAME\
|
||||
$EXT_NET_CIDR
|
||||
}
|
||||
|
||||
# create_ep_and_nsp() - Create GBP resources for the external netwrok
|
||||
function create_ep_and_nsp {
|
||||
subnet_id=`neutron net-list | grep "$EXT_NET_NAME" | awk '{print $6}'`
|
||||
|
||||
gbp external-segment-create\
|
||||
--ip-version 4\
|
||||
--cidr $EXT_NET_CIDR\
|
||||
--external-route destination=0.0.0.0/0,nexthop=\
|
||||
--shared True\
|
||||
--subnet_id=$subnet_id\
|
||||
default
|
||||
|
||||
gbp nat-pool-create\
|
||||
--ip-version 4\
|
||||
--ip-pool $EXT_NET_CIDR\
|
||||
--external-segment default\
|
||||
--shared True\
|
||||
default
|
||||
|
||||
gbp nsp-create\
|
||||
--network-service-params type=ip_pool,name=vip_ip,value=nat_pool\
|
||||
svc_mgmt_fip_policy
|
||||
}
|
||||
|
||||
# create_nfp_gbp_resources() - Create various GBP resources
|
||||
function create_nfp_gbp_resources {
|
||||
source $DEVSTACK_DIR/openrc neutron service
|
||||
unset OS_USER_DOMAIN_ID
|
||||
unset OS_PROJECT_DOMAIN_ID
|
||||
|
||||
if [[ $NFP_DEVSTACK_MODE = base ]]; then
|
||||
|
||||
IMAGE_NAME="reference_configurator_image"
|
||||
FLAVOR=m1.nfp-tiny
|
||||
|
||||
gbp service-profile-create\
|
||||
--servicetype LOADBALANCER\
|
||||
--insertion-mode l3\
|
||||
--shared True\
|
||||
--service-flavor service_vendor=haproxy,device_type=None\
|
||||
--vendor NFP\
|
||||
base_mode_lb
|
||||
|
||||
gbp service-profile-create\
|
||||
--servicetype FIREWALL\
|
||||
--insertion-mode l3\
|
||||
--shared True\
|
||||
--service-flavor service_vendor=nfp,device_type=nova,image_name=$IMAGE_NAME,flavor=$FLAVOR\
|
||||
--vendor NFP\
|
||||
base_mode_fw_vm
|
||||
|
||||
else
|
||||
|
||||
gbp service-profile-create\
|
||||
--servicetype LOADBALANCER\
|
||||
--insertion-mode l3\
|
||||
--shared True\
|
||||
--service-flavor service_vendor=haproxy,device_type=nova\
|
||||
--vendor NFP\
|
||||
lb_profile
|
||||
|
||||
gbp service-profile-create\
|
||||
--servicetype LOADBALANCERV2\
|
||||
--insertion-mode l3\
|
||||
--shared True\
|
||||
--service-flavor service_vendor=haproxy_lbaasv2,device_type=nova,flavor=m1.small\
|
||||
--vendor NFP\
|
||||
lbv2_profile
|
||||
|
||||
gbp service-profile-create\
|
||||
--servicetype FIREWALL\
|
||||
--insertion-mode l3\
|
||||
--shared True\
|
||||
--service-flavor service_vendor=vyos,device_type=nova\
|
||||
--vendor NFP\
|
||||
vyos_fw_profile
|
||||
|
||||
gbp service-profile-create\
|
||||
--servicetype VPN\
|
||||
--insertion-mode l3\
|
||||
--shared True\
|
||||
--service-flavor service_vendor=vyos,device_type=nova\
|
||||
--vendor NFP\
|
||||
vpn_profile
|
||||
|
||||
create_ext_net
|
||||
create_ep_and_nsp
|
||||
|
||||
fi
|
||||
|
||||
gbp l3policy-create\
|
||||
--ip-version 4\
|
||||
--proxy-ip-pool=192.169.0.0/24\
|
||||
--ip-pool 120.0.0.0/24\
|
||||
--subnet-prefix-length 24\
|
||||
service_management
|
||||
|
||||
gbp l2policy-create\
|
||||
--l3-policy service_management\
|
||||
svc_management_ptg
|
||||
|
||||
gbp group-create\
|
||||
svc_management_ptg\
|
||||
--service_management True\
|
||||
--l2-policy\
|
||||
svc_management_ptg
|
||||
|
||||
neutron router-gateway-clear\
|
||||
l3p_service_management
|
||||
|
||||
gbp l3policy-update\
|
||||
--external-segment ""\
|
||||
service_management
|
||||
}
|
||||
|
||||
# create_port_for_vm() - Create a port, and get its details
|
||||
# Args:
|
||||
# $1 - image_name
|
||||
# $2 - instance name
|
||||
function create_port_for_vm {
|
||||
GROUP="svc_management_ptg"
|
||||
PortId=$(gbp policy-target-create --policy-target-group $GROUP $2 | grep port_id | awk '{print $4}')
|
||||
IpAddr_extractor=`neutron port-list --format value | grep $PortId | awk '{print $7}'`
|
||||
IpAddr_purge_last=${IpAddr_extractor::-1}
|
||||
IpAddr=${IpAddr_purge_last//\"/}
|
||||
echo "IpAddr of port($PortId): $IpAddr"
|
||||
configurator_image_name=$1
|
||||
configurator_port_id=$PortId
|
||||
configurator_ip=$IpAddr
|
||||
}
|
||||
|
||||
# create_nfp_image() - Create and upload the service images
|
||||
function create_nfp_image {
|
||||
source $DEVSTACK_DIR/openrc neutron service
|
||||
unset OS_USER_DOMAIN_ID
|
||||
unset OS_PROJECT_DOMAIN_ID
|
||||
|
||||
if [[ $NFP_DEVSTACK_MODE = base ]]; then
|
||||
RefConfiguratorQcow2ImageName=reference_configurator_image
|
||||
echo "Building Image: $RefConfiguratorQcow2ImageName"
|
||||
sudo python $DISKIMAGE_CREATE_DIR/disk_image_create.py $DISKIMAGE_CREATE_DIR/ref_configurator_conf.json
|
||||
RefConfiguratorQcow2Image=$(cat $DISKIMAGE_CREATE_DIR/output/last_built_image_path)
|
||||
echo "Uploading Image: $RefConfiguratorQcow2ImageName"
|
||||
glance image-create --name $RefConfiguratorQcow2ImageName --disk-format qcow2 --container-format bare --visibility public --file $RefConfiguratorQcow2Image
|
||||
openstack --os-cloud=devstack-admin flavor create --ram 512 --disk 3 --vcpus 1 m1.nfp-tiny
|
||||
else
|
||||
ConfiguratorQcow2ImageName=configurator
|
||||
ConfiguratorInstanceName="configuratorVM_instance"
|
||||
create_port_for_vm $ConfiguratorQcow2ImageName $ConfiguratorInstanceName
|
||||
if [[ $ConfiguratorQcow2Image = build ]]; then
|
||||
echo "Building Image: $ConfiguratorQcow2ImageName"
|
||||
sudo python $DISKIMAGE_CREATE_DIR/disk_image_create.py $DISKIMAGE_CREATE_DIR/configurator_conf.json $GBPSERVICE_BRANCH
|
||||
ConfiguratorQcow2Image=$(cat $DISKIMAGE_CREATE_DIR/output/last_built_image_path)
|
||||
fi
|
||||
echo "Uploading Image: $ConfiguratorQcow2ImageName"
|
||||
glance image-create --name $ConfiguratorQcow2ImageName --disk-format qcow2 --container-format bare --visibility public --file $ConfiguratorQcow2Image
|
||||
|
||||
VyosQcow2ImageName=vyos
|
||||
if ! [[ -z $VyosQcow2Image ]]; then
|
||||
echo "Uploading Image: $VyosQcow2ImageName"
|
||||
glance image-create --name $VyosQcow2ImageName --disk-format qcow2 --container-format bare --visibility public --file $VyosQcow2Image
|
||||
fi
|
||||
|
||||
HaproxyQcow2ImageName=haproxy
|
||||
if ! [[ -z $HaproxyQcow2Image ]]; then
|
||||
echo "Uploading Image: $HaproxyQcow2ImageName"
|
||||
glance image-create --name $HaproxyQcow2ImageName --disk-format qcow2 --container-format bare --visibility public --file $HaproxyQcow2Image
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# configure_configurator_user_data() - Configure Configurator user data
|
||||
function configure_configurator_user_data {
|
||||
CUR_DIR=$PWD
|
||||
sudo rm -rf /opt/configurator_user_data
|
||||
sudo cp -r $NFPSERVICE_DIR/devstack/exercises/nfp_service/user-data/configurator_user_data /opt/.
|
||||
cd /opt
|
||||
sudo rm -rf my.key my.key.pub
|
||||
sudo ssh-keygen -t rsa -N "" -f my.key
|
||||
value=`sudo cat my.key.pub`
|
||||
sudo echo $value
|
||||
sudo sed -i "8 i\ -\ $value" configurator_user_data
|
||||
sudo sed -i '9d' configurator_user_data
|
||||
cd $CUR_DIR
|
||||
}
|
||||
|
||||
# launch_configuratorVM() - Launch the Configurator VM
|
||||
function launch_configuratorVM {
|
||||
echo "Collecting ImageId : for $configurator_image_name"
|
||||
ImageId=`glance image-list | grep $configurator_image_name | awk '{print $2}'`
|
||||
if [ ! -z "$ImageId" -a "$ImageId" != " " ]; then
|
||||
echo $ImageId
|
||||
else
|
||||
echo "No image found with name $configurator_image_name"
|
||||
exit
|
||||
fi
|
||||
|
||||
configure_configurator_user_data
|
||||
nova boot\
|
||||
--flavor m1.medium\
|
||||
--user-data /opt/configurator_user_data\
|
||||
--image $ImageId\
|
||||
--nic port-id=$configurator_port_id\
|
||||
$ConfiguratorInstanceName
|
||||
sleep 10
|
||||
}
|
||||
|
||||
# namespace_delete() - Utility for namespace management
|
||||
function namespace_delete {
|
||||
TOP_DIR=$TOP_DIR
|
||||
source $TOP_DIR/openrc neutron service
|
||||
source $DEVSTACK_DIR/openrc neutron service
|
||||
|
||||
#Deletion namespace
|
||||
NFP_P=`sudo ip netns | grep "nfp-proxy"`
|
||||
if [ ${#NFP_P} -ne 0 ]; then
|
||||
@@ -75,23 +336,20 @@ function namespace_delete {
|
||||
echo "ovs port ptr1 is removed"
|
||||
fi
|
||||
|
||||
echo "nfp-proxy cleaning success.... "
|
||||
echo "nfp-proxy cleaning success."
|
||||
}
|
||||
|
||||
# namespace_create() - Utility for namespace management
|
||||
function namespace_create {
|
||||
TOP_DIR=$TOP_DIR
|
||||
#doing it in namespace_delete, so no need to do it again
|
||||
#source $1/openrc neutron service
|
||||
SERVICE_MGMT_NET="l2p_svc_management_ptg"
|
||||
cidr="/24"
|
||||
echo "Creating new namespace nfp-proxy...."
|
||||
|
||||
#new namespace with name proxy
|
||||
NFP_P=`sudo ip netns add nfp-proxy`
|
||||
if [ ${#NFP_P} -eq 0 ]; then
|
||||
echo "New namepace nfp-proxt create"
|
||||
echo "New namepace nfp-proxy created"
|
||||
else
|
||||
echo "nfp-proxy creation failed"
|
||||
echo "New namespace nfp-proxy creation failed"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
@@ -135,7 +393,7 @@ function namespace_create {
|
||||
#get port id from router nampace
|
||||
port=`sudo ip netns exec $nm_space ip a | grep "tap" | tail -n 1 | awk '{print $7}'`
|
||||
|
||||
#get tag_id form port in ovs-bridge
|
||||
#get tag_id form port in ovs-bridge
|
||||
tag_id=`sudo ovs-vsctl list port $port | grep "tag" | tail -n 1 | awk '{print $3}'`
|
||||
|
||||
sudo ovs-vsctl set port pt1 tag=$tag_id
|
||||
@@ -145,91 +403,69 @@ function namespace_create {
|
||||
sudo ip netns exec nfp-proxy ip link set lo up
|
||||
sudo ip link set pt1 up
|
||||
|
||||
PING=`sudo ip netns exec nfp-proxy ping $2 -q -c 2 > /dev/null`
|
||||
if [ ${#PING} -eq 0 ]
|
||||
then
|
||||
echo "nfp-proxy namespcace creation success and reaching to $2"
|
||||
PING=`sudo ip netns exec nfp-proxy ping $configurator_ip -q -c 2 > /dev/null`
|
||||
if [ ${#PING} -eq 0 ]; then
|
||||
echo "nfp-proxy namespcace creation success and reaching to $configurator_ip"
|
||||
else
|
||||
echo "Fails reaching to $2"
|
||||
echo "Fails reaching to $configurator_ip"
|
||||
fi
|
||||
|
||||
sudo ip netns exec nfp-proxy /usr/bin/nfp_proxy --config-file=/etc/nfp_proxy.ini
|
||||
}
|
||||
|
||||
function create_nfp_gbp_resources {
|
||||
TOP_DIR=$TOP_DIR
|
||||
source $TOP_DIR/openrc neutron service
|
||||
|
||||
if [[ $DISABLE_BUILD_IMAGE = False ]]; then
|
||||
IMAGE_PATH=$(cat /tmp/nfp_image_path)
|
||||
IMAGE_NAME=`basename "$IMAGE_PATH"`
|
||||
IMAGE_NAME_FLAT="${IMAGE_NAME%.*}"
|
||||
FLAVOR=m1.nfp-tiny
|
||||
else
|
||||
IMAGE_NAME_FLAT="reference_configurator_image"
|
||||
FLAVOR=m1.small
|
||||
fi
|
||||
gbp network-service-policy-create --network-service-params type=ip_pool,name=vip_ip,value=nat_pool svc_mgmt_fip_policy
|
||||
gbp service-profile-create --servicetype LOADBALANCER --insertion-mode l3 --shared True --service-flavor service_vendor=haproxy,device_type=None --vendor NFP base_mode_lb
|
||||
gbp service-profile-create --servicetype FIREWALL --insertion-mode l3 --shared True --service-flavor service_vendor=nfp,device_type=nova,image_name=$IMAGE_NAME_FLAT,flavor=$FLAVOR --vendor NFP base_mode_fw_vm
|
||||
gbp group-create svc_management_ptg --service_management True
|
||||
}
|
||||
|
||||
function get_router_namespace {
|
||||
TOP_DIR=$TOP_DIR
|
||||
source $TOP_DIR/openrc neutron service
|
||||
|
||||
GROUP="svc_management_ptg"
|
||||
echo "GroupName: $GROUP"
|
||||
|
||||
l2p_id=`gbp ptg-show svc_management_ptg | grep l2_policy_id | awk '{print $4}'`
|
||||
l3p_id=`gbp l2p-show $l2p_id | grep l3_policy_id | awk '{print $4}'`
|
||||
RouterId=`gbp l3p-show $l3p_id | grep routers | awk '{print $4}'`
|
||||
}
|
||||
|
||||
# copy_nfp_files_and_start_process() - Setup configuration and start processes
|
||||
function copy_nfp_files_and_start_process {
|
||||
TOP_DIR=$TOP_DIR
|
||||
cd /opt/stack/gbp/gbpservice/nfp
|
||||
sudo cp -r bin/nfp /usr/bin/
|
||||
cd $NFPSERVICE_DIR/gbpservice/nfp
|
||||
sudo cp -r bin/nfp /usr/bin/
|
||||
sudo chmod +x /usr/bin/nfp
|
||||
sudo rm -rf /etc/nfp_*
|
||||
sudo cp -r bin/nfp_orchestrator.ini /etc/
|
||||
sudo cp -r bin/nfp_proxy_agent.ini /etc/
|
||||
sudo cp -r bin/nfp_proxy.ini /etc/nfp_proxy.ini
|
||||
sudo cp -r bin/nfp_proxy /usr/bin/
|
||||
sudo cp -r bin/nfp_orchestrator.ini /etc/
|
||||
sudo cp -r bin/nfp_proxy_agent.ini /etc/
|
||||
[[ $NFP_DEVSTACK_MODE = advanced ]] && sudo cp -r ../contrib/nfp/bin/nfp_config_orch.ini /etc/
|
||||
sudo cp -r bin/nfp_proxy.ini /etc/nfp_proxy.ini
|
||||
sudo cp -r bin/nfp_proxy /usr/bin/
|
||||
|
||||
IpAddr=127.0.0.1
|
||||
echo "Configuring proxy.ini .... with rest_server_address as $IpAddr"
|
||||
sudo sed -i "s/rest_server_address=*.*/rest_server_address=$IpAddr/g" /etc/nfp_proxy.ini
|
||||
sudo sed -i "s/rest_server_port= *.*/rest_server_port=8080/g" /etc/nfp_proxy.ini
|
||||
ipnetns_router=`sudo ip netns |grep $RouterId`
|
||||
if [[ $NFP_DEVSTACK_MODE = base ]]; then
|
||||
configurator_ip=127.0.0.1
|
||||
configurator_port=8080
|
||||
else
|
||||
configurator_ip=$configurator_ip
|
||||
configurator_port=8070
|
||||
fi
|
||||
echo "Configuring proxy.ini .... with rest_server_address as $configurator_ip:$configurator_port"
|
||||
sudo sed -i "s/rest_server_address=*.*/rest_server_address=$configurator_ip/g" /etc/nfp_proxy.ini
|
||||
sudo sed -i "s/rest_server_port= *.*/rest_server_port=$configurator_port/g" /etc/nfp_proxy.ini
|
||||
|
||||
sed -i 's#source.*#source '$TOP_DIR'/openrc demo demo#g' /opt/stack/gbp/devstack/exercises/nfp_service/*.sh
|
||||
source $TOP_DIR/functions-common
|
||||
sed -i 's#source.*#source '$DEVSTACK_DIR'/openrc demo demo#g' $NFPSERVICE_DIR/devstack/exercises/nfp_service/*.sh
|
||||
source $DEVSTACK_DIR/functions-common
|
||||
|
||||
echo "Starting orchestrator >>>> under screen named : orchestrator"
|
||||
run_process nfp_orchestrator "sudo /usr/bin/nfp --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini --config-file /etc/nfp_orchestrator.ini --log-file /opt/stack/logs/nfp_orchestrator.log"
|
||||
sleep 1
|
||||
echo "Starting nfp_orchestrator under screen named nfp_orchestrator"
|
||||
run_process nfp_orchestrator "sudo /usr/bin/nfp --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini --config-file /etc/nfp_orchestrator.ini --log-file $DEST/logs/nfp_orchestrator.log"
|
||||
sleep 4
|
||||
|
||||
echo "Starting proxy_agent >>>> under screen named : proxy_agent"
|
||||
run_process nfp_proxy_agent "sudo /usr/bin/nfp --config-file /etc/nfp_proxy_agent.ini --log-file /opt/stack/logs/nfp_proxy_agent.log"
|
||||
sleep 1
|
||||
echo "Starting nfp_proxy_agent under screen named nfp_proxy_agent"
|
||||
run_process nfp_proxy_agent "sudo /usr/bin/nfp --config-file /etc/nfp_proxy_agent.ini --log-file $DEST/logs/nfp_proxy_agent.log"
|
||||
sleep 4
|
||||
|
||||
echo "Starting proxy server under Namespace : nfp-proxy namespace >>>> under screen named : proxy"
|
||||
run_process nfp_proxy "source /opt/stack/gbp/devstack/lib/nfp;namespace_delete $TOP_DIR;namespace_create $TOP_DIR $IpAddr"
|
||||
echo "Starting nfp_proxy inside namespace named nfp-proxy, under screen named nfp_proxy"
|
||||
run_process nfp_proxy "source $NFPSERVICE_DIR/devstack/lib/nfp; namespace_delete; namespace_create"
|
||||
sleep 10
|
||||
|
||||
cd pecan/api
|
||||
sudo python setup.py develop
|
||||
echo "Starting base_configurator >>>> under screen named : base_configurator"
|
||||
run_process nfp_base_configurator "cd /opt/stack/gbp/gbpservice/nfp/pecan/api;sudo ip netns exec nfp-proxy pecan configurator_decider config.py --mode base"
|
||||
if [[ $NFP_DEVSTACK_MODE = advanced ]]; then
|
||||
echo "Starting nfp_config_orchestrator under screen named nfp_config_orchestrator"
|
||||
run_process nfp_config_orchestrator "sudo /usr/bin/nfp --config-file /etc/nfp_config_orch.ini --config-file /etc/neutron/neutron.conf --log-file $DEST/logs/nfp_config_orchestrator.log"
|
||||
else
|
||||
cd pecan/api
|
||||
sudo python setup.py develop
|
||||
echo "Starting nfp_base_configurator under screen named nfp_base_configurator"
|
||||
run_process nfp_base_configurator "cd $NFPSERVICE_DIR/gbpservice/nfp/pecan/api; sudo ip netns exec nfp-proxy pecan configurator_decider config.py --mode base"
|
||||
fi
|
||||
sleep 1
|
||||
|
||||
echo "Running gbp-db-manage"
|
||||
|
||||
source $TOP_DIR/openrc neutron service
|
||||
|
||||
echo "Upgrading DB to HEAD"
|
||||
source $DEVSTACK_DIR/openrc neutron service
|
||||
gbp-db-manage --config-file /etc/neutron/neutron.conf upgrade head
|
||||
sleep 2
|
||||
echo "Configuration success ... "
|
||||
|
||||
echo "NFP configuration done."
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user