aboutsummaryrefslogtreecommitdiffstats
path: root/moonv4/templates/docker/keystone
diff options
context:
space:
mode:
authorWuKong <rebirthmonkey@gmail.com>2017-04-22 13:25:07 +0200
committerWuKong <rebirthmonkey@gmail.com>2017-04-22 13:25:07 +0200
commitd182202fc6001983541504ed323d68479086317e (patch)
tree11d4c10cdd3e995f519c3e0e324968fdaf175114 /moonv4/templates/docker/keystone
parent83c1c966baf73329fab8ddcfad19ad7fe0c41c2a (diff)
add moonv4
Change-Id: I247af788d0b0fb961fbc85416486b241eb1d807c Signed-off-by: WuKong <rebirthmonkey@gmail.com>
Diffstat (limited to 'moonv4/templates/docker/keystone')
-rw-r--r--moonv4/templates/docker/keystone/Dockerfile27
-rw-r--r--moonv4/templates/docker/keystone/README.md8
-rw-r--r--moonv4/templates/docker/keystone/run.sh128
3 files changed, 163 insertions, 0 deletions
diff --git a/moonv4/templates/docker/keystone/Dockerfile b/moonv4/templates/docker/keystone/Dockerfile
new file mode 100644
index 00000000..b8ba8212
--- /dev/null
+++ b/moonv4/templates/docker/keystone/Dockerfile
@@ -0,0 +1,27 @@
+# Pull base image.
+FROM ubuntu:latest
+
+ENV ADMIN_TOKEN=p4ssw0rd
+ENV ADMIN_PASSWORD=p4ssw0rd
+ENV DB_CONNECTION=mysql+pymysql
+ENV DB_DRIVER=sql
+ENV DB_HOST=localhost
+ENV DB_DATABASE=keystonedb
+ENV DB_USER=keystone
+ENV DB_PASSWORD=p4ssw0rd
+ENV DB_USER_ROOT=root
+ENV DB_PASSWORD_ROOT=p4sswOrd1
+ENV RABBIT_NODE=server
+
+RUN apt-get update && apt-get install apache2 rabbitmq-server keystone python-openstackclient libapache2-mod-wsgi mysql-client -y
+
+RUN apt-get update && apt-get install iputils-ping net-tools -y
+
+
+# ADD set-ops-env.source.sh /root
+ADD run.sh /root
+
+EXPOSE 35357
+EXPOSE 5000
+
+CMD ["/bin/bash", "/root/run.sh"] \ No newline at end of file
diff --git a/moonv4/templates/docker/keystone/README.md b/moonv4/templates/docker/keystone/README.md
new file mode 100644
index 00000000..bbf80cbe
--- /dev/null
+++ b/moonv4/templates/docker/keystone/README.md
@@ -0,0 +1,8 @@
+# Keystone container
+
+## How to use
+
+```bash
+docker build --build-arg https_proxy=http://proxy:3128 --build-arg http_proxy=http://proxy:3128 -t keystone:mitaka .
+docker run -dti --net moon --name keystone --hostname=keystone -e DB_HOST=db -e DB_PASSWORD_ROOT=my_password -p 35357:35357 -p 5000:5000 keystone:mitaka
+``` \ No newline at end of file
diff --git a/moonv4/templates/docker/keystone/run.sh b/moonv4/templates/docker/keystone/run.sh
new file mode 100644
index 00000000..7c9a1a43
--- /dev/null
+++ b/moonv4/templates/docker/keystone/run.sh
@@ -0,0 +1,128 @@
+#!/usr/bin/env bash
+
+MY_HOSTNAME=localhost
+
+echo DB_HOST=$DB_HOST
+echo DB_DATABASE=$DB_DATABASE
+echo RABBIT_NODE=$RABBIT_NODE
+echo RABBIT_NODE=$[RABBIT_NODE]
+
+sed "s/#admin_token = <None>/admin_token=$ADMIN_TOKEN/g" -i /etc/keystone/keystone.conf
+sed "s/connection = sqlite:\/\/\/\/var\/lib\/keystone\/keystone.db/connection = $DB_CONNECTION:\/\/$DB_USER:$DB_PASSWORD@$DB_HOST\/$DB_DATABASE/g" -i /etc/keystone/keystone.conf
+sed "s/#driver = sql/driver = $DB_DRIVER/g" -i /etc/keystone/keystone.conf
+
+mysql -h $DB_HOST -u$DB_USER_ROOT -p$DB_PASSWORD_ROOT <<EOF
+CREATE DATABASE $DB_DATABASE DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
+GRANT ALL ON $DB_DATABASE.* TO '$DB_USER'@'%' IDENTIFIED BY '$DB_PASSWORD';
+GRANT ALL ON $DB_DATABASE.* TO '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASSWORD';
+EOF
+
+#rabbitmqctl -n rabbit@$RABBIT_NODE add_user openstack password
+#rabbitmqctl -n rabbit@$RABBIT_NODE set_permissions openstack ".*" ".*" ".*"
+
+cat << EOF | tee /etc/apache2/sites-available/wsgi-keystone.conf
+Listen 5000
+Listen 35357
+
+<VirtualHost *:5000>
+ WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
+ WSGIProcessGroup keystone-public
+ WSGIScriptAlias / /usr/bin/keystone-wsgi-public
+ WSGIApplicationGroup %{GLOBAL}
+ WSGIPassAuthorization On
+ <IfVersion >= 2.4>
+ ErrorLogFormat "%{cu}t %M"
+ </IfVersion>
+ ErrorLog /var/log/apache2/keystone.log
+ CustomLog /var/log/apache2/keystone_access.log combined
+
+ <Directory /usr/bin>
+ <IfVersion >= 2.4>
+ Require all granted
+ </IfVersion>
+ <IfVersion < 2.4>
+ Order allow,deny
+ Allow from all
+ </IfVersion>
+ </Directory>
+</VirtualHost>
+
+<VirtualHost *:35357>
+ WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
+ WSGIProcessGroup keystone-admin
+ WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
+ WSGIApplicationGroup %{GLOBAL}
+ WSGIPassAuthorization On
+ <IfVersion >= 2.4>
+ ErrorLogFormat "%{cu}t %M"
+ </IfVersion>
+ ErrorLog /var/log/apache2/keystone.log
+ CustomLog /var/log/apache2/keystone_access.log combined
+
+ <Directory /usr/bin>
+ <IfVersion >= 2.4>
+ Require all granted
+ </IfVersion>
+ <IfVersion < 2.4>
+ Order allow,deny
+ Allow from all
+ </IfVersion>
+ </Directory>
+</VirtualHost>
+
+EOF
+
+a2ensite wsgi-keystone
+
+service keystone stop
+echo "manual" | tee /etc/init/keystone.override
+
+service apache2 restart
+
+netstat -tanpeo
+
+export http_proxy=
+export https_proxy=
+
+keystone-manage db_sync
+
+keystone-manage bootstrap \
+ --bootstrap-password ${ADMIN_PASSWORD} \
+ --bootstrap-username admin \
+ --bootstrap-project-name admin \
+ --bootstrap-role-name admin \
+ --bootstrap-service-name keystone \
+ --bootstrap-region-id Orange \
+ --bootstrap-admin-url http://localhost:35357 \
+ --bootstrap-public-url http://localhost:5000 \
+ --bootstrap-internal-url http://localhost:5000
+
+
+export OS_USERNAME=admin
+export OS_PASSWORD=${ADMIN_PASSWORD}
+export OS_REGION_NAME=Orange
+export OS_TENANT_NAME=admin
+export OS_AUTH_URL=http://localhost:5000/v3
+export OS_DOMAIN_NAME=Default
+
+openstack project create --description "Service Project" demo
+openstack role create user
+openstack role add --project demo --user demo user
+
+echo -e "\n Project list:"
+openstack project list
+
+echo -e "\n Users list:"
+openstack user list
+
+echo -e "\n Roles list:"
+openstack role list
+
+echo -e "\n Service list:"
+openstack service list
+
+echo -e "\n Endpoint list:"
+openstack endpoint list --long
+
+
+tail -f /var/log/apache2/keystone.log \ No newline at end of file