CLIREPO="tacker-client"
DEPREPO="jsonrpclib"
-CLIENT="python-python-tackerclient_0.0.1~dev48-1_all.deb"
-JSONRPC="python-jsonrpclib_0.1.7-1_all.deb"
-SERVER="python-tacker_2014.2.0~dev177-1_all.deb"
+CLIENT=$(echo python-python-tackerclient_*_all.deb)
+JSONRPC=$(echo python-jsonrpclib_*_all.deb)
+SERVER=$(echo python-tacker_*_all.deb)
+
+#fuel admin user name
+fadm="fadm"
# Function checks whether crudini is available, if not - installs
function chkCrudini () {
# Function setting up the build/deploy environment
function envSetup () {
+ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BCE5CC461FA22B08
apt-get update
apt-get install -y git python-pip python-all debhelper
chkPPkg stdeb
dpkg --purge python-jsonrpclib
python setup.py --command-packages=stdeb.command bdist_deb
cd "deb_dist"
+ JSONRPC=$(echo python-jsonrpclib_*_all.deb)
cp $JSONRPC $MYDIR
dpkg -i $JSONRPC
}
fi
cd $MYDIR
rm -rf $MYREPO
- git clone -b 'SFC_brahmaputra' https://github.com/trozet/tacker.git $MYREPO
+ git clone -b 'SFC_colorado' https://github.com/trozet/tacker.git $MYREPO
cd $MYREPO
patch -p 1 <<EOFSCP
diff -ruN a/setup.cfg b/setup.cfg
# Function corrects and installs the Tacker-server debian package
function blessPackage () {
+ pushd "${MYDIR}/${MYREPO}/deb_dist"
+ SERVER=$(echo python-tacker_*_all.deb)
+ popd
DEBFILE="${MYDIR}/${MYREPO}/deb_dist/${SERVER}"
TMPDIR=$(mktemp -d /tmp/deb.XXXXXX) || exit 1
OUTPUT=$(basename "$DEBFILE")
dpkg-deb --control "$DEBFILE" "${TMPDIR}/DEBIAN"
cd "$TMPDIR"
patch -p 1 <<EOFDC
-diff -ruN a/DEBIAN/control b/DEBIAN/control
---- a/DEBIAN/control 2016-02-08 10:06:18.000000000 +0000
-+++ b/DEBIAN/control 2016-02-08 10:45:09.501373675 +0000
+diff -ruN DEBIAN/control DEBIAN/control
+--- a/DEBIAN/control 2016-08-19 11:53:10.000000000 +0000
++++ b/DEBIAN/control 2016-08-19 12:01:49.629096317 +0000
@@ -4,7 +4,7 @@
Architecture: all
Maintainer: OpenStack <openstack-dev@lists.openstack.org>
- Installed-Size: 1575
+ Installed-Size: 1566
-Depends: python (>= 2.7), python (<< 2.8), python:any (>= 2.7.1-0ubuntu2), python-pbr, python-paste, python-pastedeploy, python-routes, python-anyjson, python-babel, python-eventlet, python-greenlet, python-httplib2, python-requests, python-iso8601, python-jsonrpclib, python-jinja2, python-kombu, python-netaddr, python-sqlalchemy (>= 1.0~), python-sqlalchemy (<< 1.1), python-webob, python-heatclient, python-keystoneclient, alembic, python-six, python-stevedore, python-oslo.config, python-oslo.messaging-, python-oslo.rootwrap, python-novaclient
+Depends: python (>= 2.7), python (<< 2.8), python:any (>= 2.7.1-0ubuntu2), python-pbr, python-paste, python-pastedeploy, python-routes, python-anyjson, python-babel, python-eventlet, python-greenlet, python-httplib2, python-requests, python-iso8601, python-jsonrpclib, python-jinja2, python-kombu, python-netaddr, python-sqlalchemy (>= 1.0~), python-sqlalchemy (<< 1.1), python-webob, python-heatclient, python-keystoneclient, alembic, python-six, python-stevedore, python-oslo.config, python-oslo.messaging, python-oslo.rootwrap, python-novaclient
Section: python
EOFDC
cd "$MYDIR"
echo "Patching deb..."
- dpkg -b "$TMPDIR" "${MYDIR}/${OUTPUT}"
+ dpkg -b "$TMPDIR" "${MYDIR}/${SERVER}"
rm -r "$TMPDIR"
- dpkg -i "${MYDIR}/${OUTPUT}"
+ dpkg -i "${MYDIR}/${SERVER}"
}
# Function deploys Tacker-server (installs missing mandatory files: upstart, default)
cd $CLIREPO
python setup.py --command-packages=stdeb.command bdist_deb
cd "deb_dist"
+ CLIENT=$(echo python-python-tackerclient_*_all.deb)
cp $CLIENT $MYDIR
- dpkg -i $CLIENT
+ dpkg -i "${MYDIR}/${CLIENT}"
}
# Function removes the cloned git repositories
for anode in $clusternodes ; do
if [ "$anode" != "$myaddr" ] ; then
echo "Installing $CLIENT on $anode"
- scp ${SSH_OPTIONS[@]} $CLIENT $anode:$CLIENT
- ssh ${SSH_OPTIONS[@]} $anode dpkg -i $CLIENT
- ssh ${SSH_OPTIONS[@]} $anode rm $CLIENT
+ scp ${SSH_OPTIONS[@]} -i "${MYDIR}/.ssh/id_rsa" ${CLIENT} ${fadm}@${anode}:${CLIENT}
+ ssh ${SSH_OPTIONS[@]} -i "${MYDIR}/.ssh/id_rsa" ${fadm}@${anode} sudo dpkg -i ${CLIENT}
+ ssh ${SSH_OPTIONS[@]} -i "${MYDIR}/.ssh/id_rsa" ${fadm}@${anode} rm ${CLIENT}
fi
done
}
# Function orchestrate the Tacker service
-function orchestarte () {
+function orchestrate () {
rm -rf /etc/puppet/modules/tacker
pushd /etc/puppet/modules
git clone https://github.com/trozet/puppet-tacker.git tacker
auth_uri=$(crudini --get '/etc/heat/heat.conf' 'keystone_authtoken' 'auth_uri')
identity_uri=$(crudini --get '/etc/heat/heat.conf' 'keystone_authtoken' 'identity_uri')
+ int_addr=$(ifconfig br-mesh | sed -n '/inet addr/s/.*addr.\([^ ]*\) .*/\1/p')
+ odl_addr=$(hiera management_vip)
mgmt_addr=$(ifconfig br-mgmt | sed -n '/inet addr/s/.*addr.\([^ ]*\) .*/\1/p')
pub_addr=$(ifconfig br-ex-lnx | sed -n '/inet addr/s/.*addr.\([^ ]*\) .*/\1/p')
rabbit_host=$(crudini --get '/etc/heat/heat.conf' 'oslo_messaging_rabbit' 'rabbit_hosts'| cut -d ':' -f 1)
rabbit_password=$(crudini --get '/etc/heat/heat.conf' 'oslo_messaging_rabbit' 'rabbit_password')
sql_host=$(hiera database_vip)
database_connection="mysql://tacker:tacker@${sql_host}/tacker"
+ internal_url="http://${int_addr}:${bind_port}"
admin_url="http://${mgmt_addr}:${bind_port}"
public_url="http://${pub_addr}:${bind_port}"
heat_api_vip=$(crudini --get '/etc/heat/heat.conf' 'heat_api' 'bind_host')
rabbit_host => '${rabbit_host}',
rabbit_password => '${rabbit_password}',
heat_uri => '${heat_uri}',
- opendaylight_host => '${mgmt_addr}',
+ opendaylight_host => '${odl_addr}',
opendaylight_port => '${odl_port}',
}
class { 'tacker::db::mysql':
password => '${myPassword}',
- dbname => 'tacker',
- user => 'tacker',
- host => '127.0.0.1',
- charset => 'utf8',
- collate => 'utf8_general_ci',
allowed_hosts => ${allowed_hosts},
}
password => '${myPassword}',
tenant => '${service_tenant}',
admin_url => '${admin_url}',
- internal_url => '${admin_url}',
+ internal_url => '${internal_url}',
public_url => '${public_url}',
region => '${myRegion}',
}
EOF
+ apt-get install -y mysql-client-5.5
+ cat > /usr/bin/tacker-manage <<EOFAKEMANAGE
+#!/bin/bash
+EOFAKEMANAGE
+ chmod +x /usr/bin/tacker-manage
puppet apply configure_tacker.pp
rm -f tackerc
cat > tackerc <<EOFRC
export OS_TENANT_NAME='${service_tenant}'
export OS_PROJECT_NAME='${service_tenant}'
export OS_USERNAME='tacker'
-export OS_PASSWORD='tacker'
+export OS_PASSWORD='${myPassword}'
export OS_AUTH_URL='${auth_uri}'
export OS_DEFAULT_DOMAIN='default'
export OS_AUTH_STRATEGY='keystone'
-export OS_REGION_NAME='RegionOne'
+export OS_REGION_NAME='${myRegion}'
+export TACKER_ENDPOINT_TYPE='internalURL'
EOFRC
chmod +x tackerc
}
myaddr=$(ifconfig br-fw-admin | sed -n '/inet addr/s/.*addr.\([^ ]*\) .*/\1/p')
for anode in $clusternodes ; do
if [ "$anode" != "$myaddr" ] ; then
- echo "Populating seetings to $anode"
- scp ${SSH_OPTIONS[@]} tackerc $anode:tackerc
+ echo "Populating settings to $anode"
+ scp ${SSH_OPTIONS[@]} -i "${MYDIR}/.ssh/id_rsa" tackerc ${fadm}@${anode}:tackerc
fi
done
}
+
envSetup
deployTackerClient
deployJsonrpclib
blessPackage
deployTackerServer
populate_client
-orchestarte
+orchestrate
populate_rc
+git clone https://github.com/trozet/sfc-random.git
+
remove_repo "$MYREPO"
remove_repo "$DEPREPO"
remove_repo "$CLIREPO"