summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorblsaws <blsaws@hotmail.com>2015-10-07 08:29:08 -0700
committerblsaws <blsaws@hotmail.com>2015-10-07 08:29:08 -0700
commit120338c88677f2f21501270ff8b250cf9d5b9521 (patch)
treec5acd4716c7adeeae5ee9e3ad97ffc5e6217c130
parent52a6e0e6056fd355ce363d78150993f00bd144b7 (diff)
Add components folder, congress ansible installer
JIRA: COPPER-2 Signed-off-by: blsaws <blsaws@hotmail.com>
-rw-r--r--components/congress/ansible/build_congress.yml12
-rw-r--r--components/congress/ansible/config.yml73
-rw-r--r--components/congress/ansible/deploy_congress.yml12
-rw-r--r--components/congress/ansible/hosts.ini5
-rw-r--r--components/congress/ansible/roles/deploy/tasks/main.yml89
-rw-r--r--components/congress/ansible/roles/deploy/templates/congress-api.conf7
-rw-r--r--components/congress/ansible/roles/deploy/templates/congress.conf56
7 files changed, 254 insertions, 0 deletions
diff --git a/components/congress/ansible/build_congress.yml b/components/congress/ansible/build_congress.yml
new file mode 100644
index 0000000..572f330
--- /dev/null
+++ b/components/congress/ansible/build_congress.yml
@@ -0,0 +1,12 @@
+---
+
+- hosts: congress_build_host
+ sudo: true
+
+
+ vars_files:
+ - config.yml
+
+
+ roles:
+ - build
diff --git a/components/congress/ansible/config.yml b/components/congress/ansible/config.yml
new file mode 100644
index 0000000..0db4e33
--- /dev/null
+++ b/components/congress/ansible/config.yml
@@ -0,0 +1,73 @@
+---
+#Openstack Congress Ansible installer answer file
+#Jacob Cherkas <cherkasj@vmware.com>
+
+#temp directory used to build congress dependencies
+tempDir: /tmp
+
+#directory where the binary venv package will be built
+virtualPackageDir: /var/tmp
+
+#packge version
+congressVersion: "2014.1.4-1"
+
+#directory where to install congress. This should only be the base directory and not the full path. We will create the congress folder automatically
+installDir: /opt/
+
+#initialize congress services, keystone endpoint, congress user creation and database initialization.
+#if this is the first time you are installing then set init = True. For subsequent install or upgrades
+#set donInit = False
+init: "True"
+
+#--------- start init ---------
+#public endpoint
+publicEndpoint: https://snsj54.vctlab.com:1789/
+
+#internal endpoint
+internalEndpoint: http://snsj54.vctlab.com:1789/
+
+#admin endpoint
+adminEndpoint: http://snsj54.vctlab.com:1789/
+
+#keystone admin user
+keystoneAdminUser: blsaws
+
+#keystone admin password
+keystoneAdminPassword: SHOULD@manner@11
+
+#keystone auth_url
+#keystoneAuthURL: http://keystone_server:35357/v2.0
+
+#keystone auth_host
+keystoneAuthHost: snsj54.vctlab.com
+
+#keystone auth protocal (http or https)
+keystoneAuthProto: http
+
+#openstack admin tenant name
+adminTenantName: admin
+
+#region
+authRegion: sddc
+
+#congress admin username
+congressAdminUser: congress
+
+#congress admin password
+congressAdminPassword: congress
+
+#mysql user ip address or hostname
+mysqlDBIP: snsj54.vctlab.com
+
+#mysql root password
+mysqlDBPassword: 67f7d56ce7dafd97af43
+
+#mysql root username
+mysqlDBUser: root
+
+#congress db user
+dbUser: congress
+
+#congress db password
+dbPassword: congress
+#--------- end init ---------
diff --git a/components/congress/ansible/deploy_congress.yml b/components/congress/ansible/deploy_congress.yml
new file mode 100644
index 0000000..7f01040
--- /dev/null
+++ b/components/congress/ansible/deploy_congress.yml
@@ -0,0 +1,12 @@
+---
+
+- hosts: congress_prod_host
+ sudo: true
+
+
+ vars_files:
+ - config.yml
+
+
+ roles:
+ - deploy
diff --git a/components/congress/ansible/hosts.ini b/components/congress/ansible/hosts.ini
new file mode 100644
index 0000000..f3f0766
--- /dev/null
+++ b/components/congress/ansible/hosts.ini
@@ -0,0 +1,5 @@
+[congress_build_host]
+127.0.0.1 ansible_connection=local
+
+[congress_prod_host]
+snsj54.vctlab.com
diff --git a/components/congress/ansible/roles/deploy/tasks/main.yml b/components/congress/ansible/roles/deploy/tasks/main.yml
new file mode 100644
index 0000000..956728b
--- /dev/null
+++ b/components/congress/ansible/roles/deploy/tasks/main.yml
@@ -0,0 +1,89 @@
+---
+- name: updating package cache
+ apt: update_cache=yes
+
+- name: installing dependancies
+ apt: pkg={{item}} state=present
+ with_items:
+ - python-pip
+ - libmysqlclient-dev
+ - python-mysqldb
+
+- name: installing python dependancies
+ pip: name={{item}}
+ with_items:
+ - virtualenv
+# - MySQL-python
+
+- name: creating congress group
+ group: name=congress state=present
+ when: init == "True"
+
+- name: creating congress user
+ user: name=congress group=congress state=present createhome=no
+ when: init == "True"
+
+- name: creating remote install directory
+ file: path={{item}} state=directory owner=congress group=congress
+ with_items:
+ - /etc/congress
+ - "{{installDir}}"
+ - /var/log/congress
+
+- name: copying congress build to prod host
+ unarchive: src={{tempDir}}/congress-{{congressVersion}}.tgz dest={{installDir}} owner=congress group=congress
+
+- name: activating virtualenv
+ shell: virtualenv {{installDir}}/congress
+
+- name: updating congress.conf
+ template: src=congress.conf dest=/etc/congress/congress.conf owner=congress group=congress
+
+- name: create congress service
+ shell: >
+ {{installDir}}/congress/bin/keystone \
+ --os-auth-url={{keystoneAuthProto}}://{{keystoneAuthHost}}:35357/v2.0 \
+ --os-username={{keystoneAdminUser}} \
+ --os-tenant-name={{adminTenantName}} \
+ --os-password={{keystoneAdminPassword}} \
+ service-create --name congress --type "policy" --description "Congress Service"
+ when: init == "True"
+
+- name: creating keystone endpoint
+ shell: >
+ {{installDir}}/congress/bin/keystone \
+ --os-auth-url={{keystoneAuthProto}}://{{keystoneAuthHost}}:35357/v2.0 \
+ --os-username={{keystoneAdminUser}} \
+ --os-tenant-name={{adminTenantName}} \
+ --os-password={{keystoneAdminPassword}} \
+ endpoint-create --service congress \
+ --region {{authRegion}} \
+ --publicurl {{publicEndpoint}} \
+ --adminurl {{adminEndpoint}} \
+ --internalurl {{internalEndpoint}}
+ when: init == "True"
+
+- name: creating congress database
+ mysql_db: name=congress state=present login_host={{mysqlDBIP}} login_user={{mysqlDBUser}} login_password={{mysqlDBPassword}}
+ when: init == "True"
+
+- name: creating and granting congress user access to database
+ mysql_user: name={{dbUser}} password={{dbPassword}} login_host={{mysqlDBIP}} login_user={{mysqlDBUser}} login_password={{mysqlDBPassword}} priv=congress.*:ALL host={{ item }}
+ with_items:
+ - "%"
+ - "localhost"
+ when: init == "True"
+
+- name: creating congress database schema
+ shell: >
+ {{installDir}}/congress/bin/congress-db-manage --config-file /etc/congress/congress.conf upgrade head
+ when: init == "True"
+
+- name: copy init service
+ template: src=congress-api.conf dest=/etc/init/congress-api.conf
+ when: init == "True"
+
+- name: enabling init service for congress
+ file: src=/lib/init/upstart-job dest=/etc/init.d/congress-api state=link
+ when: init == "True"
+
diff --git a/components/congress/ansible/roles/deploy/templates/congress-api.conf b/components/congress/ansible/roles/deploy/templates/congress-api.conf
new file mode 100644
index 0000000..4eae24d
--- /dev/null
+++ b/components/congress/ansible/roles/deploy/templates/congress-api.conf
@@ -0,0 +1,7 @@
+description "Congress API server"
+
+env PYTHON_PATH={{installDir}}/congress
+start on runlevel [2345]
+stop on runlevel [!2345]
+
+exec {{installDir}}/congress/bin/congress-server --config-file /etc/congress/congress.conf
diff --git a/components/congress/ansible/roles/deploy/templates/congress.conf b/components/congress/ansible/roles/deploy/templates/congress.conf
new file mode 100644
index 0000000..ffcd900
--- /dev/null
+++ b/components/congress/ansible/roles/deploy/templates/congress.conf
@@ -0,0 +1,56 @@
+[DEFAULT]
+# Print more verbose output (set logging level to INFO instead of default WARNING level).
+verbose = True
+
+# Print debugging output (set logging level to DEBUG instead of default WARNING level).
+# debug = False
+
+# log_format = %(asctime)s %(levelname)8s [%(name)s] %(message)s
+# log_date_format = %Y-%m-%d %H:%M:%S
+
+# use_syslog -> syslog
+# log_file and log_dir -> log_dir/log_file
+# (not log_file) and log_dir -> log_dir/{binary_name}.log
+# use_stderr -> stderr
+# (not user_stderr) and (not log_file) -> stdout
+# publish_errors -> notification system
+
+# use_syslog = False
+# syslog_log_facility = LOG_USER
+
+# use_stderr = True
+log_file = congress.log
+log_dir = /var/log/congress
+
+# publish_errors = False
+
+# Address to bind the API server to
+# bind_host = 0.0.0.0
+
+# Port the bind the API server to
+# bind_port = 1789
+
+# The path to the latest policy dump
+policy_path = /etc/congress/snapshot
+
+# Paste configuration file
+# api_paste_config = api-paste.ini
+
+# The strategy to be used for auth.
+# Supported values are 'keystone'(default), 'noauth'.
+auth_strategy = keystone
+
+# List of datasource driver class paths to import.
+# For example: congress.datasources.neutronv2_driver.NeutronV2Driver, etc
+# datasource_drivers = []
+
+[keystone_authtoken]
+auth_host = {{ keystoneAuthHost }}
+auth_port = 35357
+auth_protocol = {{ keystoneAuthProto }}
+admin_tenant_name = {{ adminTenantName }}
+admin_user = {{ congressAdminUser }}
+admin_password = {{ congressAdminPassword }}
+
+[database]
+connection = mysql://{{dbUser}}:{{dbPassword}}@{{mysqlDBIP}}:3306/congress