diff --git a/chef/databags/openstack/openstack.json b/chef/databags/openstack/openstack.json
index 014ff42..f268846 100644
--- a/chef/databags/openstack/openstack.json
+++ b/chef/databags/openstack/openstack.json
@@ -2,6 +2,29 @@
"os-network" : "openstack network node",
"os-compute-worker" : "openstack nova node"
},
+ "role_mapping": {
+ "os-single-controller": {
+ "/db/mysql/bind_address": "/networking/interfaces/management/ip",
+ "/mq/rabbitmq/bind_address": "/networking/interfaces/management/ip",
+ "/endpoints/compute/metadata/host": "/networking/interfaces/management/ip",
+ "/endpoints/compute/novnc/host": "/networking/interfaces/management/ip",
+ "/endpoints/compute/service/host": "/networking/interfaces/management/ip",
+ "/endpoints/compute/xvpvnc/host": "/networking/interfaces/management/ip",
+ "/endpoints/ec2/admin/host": "/networking/interfaces/management/ip",
+ "/endpoints/ec2/service/host": "/networking/interfaces/management/ip",
+ "/endpoints/identity/admin/host": "/networking/interfaces/management/ip",
+ "/endpoints/identity/service/host": "/networking/interfaces/management/ip",
+ "/endpoints/image/registry/host": "/networking/interfaces/management/ip",
+ "/endpoints/image/service/host": "/networking/interfaces/management/ip",
+ "/endpoints/metering/service/host": "/networking/interfaces/management/ip",
+ "/endpoints/network/service/host": "/networking/interfaces/management/ip",
+ "/endpoints/volume/service/host": "/networking/interfaces/management/ip"
+ },
+ "os-network": {
+ },
+ "os-compute-worker": {
+ }
+ },
"credential" : { "identity" : { "roles" : { "admin" : "admin",
"member" : "Member"
},
diff --git a/cobbler/conf/cobbler.conf b/cobbler/conf/cobbler.conf
new file mode 100644
index 0000000..fa4457f
--- /dev/null
+++ b/cobbler/conf/cobbler.conf
@@ -0,0 +1,40 @@
+# This configuration file allows cobbler data
+# to be accessed over HTTP.
+
+AliasMatch ^/cblr/svc/op/ks/system/(.*)?$ "/var/www/cblr_ks/$1"
+AliasMatch ^/cblr(?!/svc/)(.*)?$ "/var/www/cobbler$1"
+AliasMatch ^/cobbler_track(.*)?$ "/var/www/cobbler$1"
+#AliasMatch ^/cobbler(.*)?$ "/var/www/cobbler$1"
+Alias /cobbler /var/www/cobbler
+Alias /cobbler_webui_content /var/www/cobbler_webui_content
+
+WSGIScriptAliasMatch ^/cblr/svc/([^/]*) /var/www/cobbler/svc/services.py
+
+
+ Options Indexes FollowSymLinks
+ Order allow,deny
+ Allow from all
+
+
+ProxyRequests off
+
+ProxyPass /cobbler_api http://localhost:25151/
+ProxyPassReverse /cobbler_api http://localhost:25151/
+
+BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
+
+# the webui is now part of the "cobbler-web" package
+# and is visited at http://.../cobbler_web not this URL.
+# this is only a pointer to the new page.
+
+
+ Options Indexes FollowSymLinks
+ Order allow,deny
+ Allow from all
+
+
+
+ Options Indexes FollowSymLinks
+ Order allow,deny
+ Allow from all
+
diff --git a/cobbler/snippets/chef b/cobbler/snippets/chef
index 64d6bd0..fd450db 100644
--- a/cobbler/snippets/chef
+++ b/cobbler/snippets/chef
@@ -30,24 +30,34 @@ EOL
service rsyslog restart
-cat << EOF > /etc/chef/rerun.sh
+cat << EOF > /etc/chef/firstrun.sh
#raw
#!/bin/bash
-pgrep chef-client
-while [ "\$?" != "0" ]; do
-chef-client -p /var/run/chef-client.pid -j /etc/chef/first-boot.json &> /tmp/chef.log
-if [ "\$?" == "0" ]; then
-sed -i "/log_location/c\log_location '/dev/null'" /etc/chef/client.rb
-break
-else
-sleep 1m
-pgrep chef-client
-fi
+while true; do
+ pgrep chef-client
+ if [ "\$?" == "0" ]; then
+ exit 1
+ fi
+ chef-client -j /etc/chef/first-boot.json -L /var/log/chef-client.log &> /tmp/chef.log
+ if [ "\$?" != "0" ]; then
+ sleep 1m
+ else
+ break
+ fi
done
#end raw
EOF
-
+cat << EOF > /etc/chef/rerun.sh
+#raw
+#!/bin/bash
+pgrep chef-client
+if [ "\$?" == "0" ]; then
+ exit 1
+fi
+chef-client &> /tmp/chef.log
+#end raw
+EOF
## A self-destruct service to boot chef client and register cron job
cat << EOF > /etc/init.d/chef
@@ -64,8 +74,9 @@ echo "path: \$PATH" 2>&1 >> /tmp/ntp.log
echo "new date is: \`date\`" 2>&1 >> /tmp/ntp.log
#end if
+chmod +x /etc/chef/firstrun.sh
chmod +x /etc/chef/rerun.sh
-/etc/chef/rerun.sh &
+/etc/chef/firstrun.sh &
crontab -l > mycron
echo "*/30 * * * * /etc/chef/rerun.sh" >> mycron
diff --git a/cobbler/snippets/client.rb b/cobbler/snippets/client.rb
index fce9ea5..186c143 100644
--- a/cobbler/snippets/client.rb
+++ b/cobbler/snippets/client.rb
@@ -1,5 +1,5 @@
log_level :info
-log_location '/var/log/chef-client.log'
+log_location '/dev/null'
#if $getVar('chef_url', '') != ""
chef_server_url '$chef_url'
#end if
@@ -14,5 +14,7 @@ no_proxy '$ignore_proxy'
node_name '$chef_node_name'
#end if
validation_client_name 'chef-validator'
+json_attribs nil
+pid_file '/var/run/chef-client.pid'
# Using default node name (fqdn)
no_lazy_load true
diff --git a/cobbler/snippets/sysctl.conf b/cobbler/snippets/sysctl.conf
index 3df2b92..1811fc9 100644
--- a/cobbler/snippets/sysctl.conf
+++ b/cobbler/snippets/sysctl.conf
@@ -61,7 +61,7 @@ net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
# increase the maximum number of requests queued to a listen socket
-net.core.somaxconn = 1024
+net.core.somaxconn = 8192
# avoid caching tcp network transfer statistics
net.ipv4.route.flush=1
diff --git a/cobbler/triggers/sync/post/migrate_ks.py b/cobbler/triggers/sync/post/migrate_ks.py
new file mode 100755
index 0000000..9ef8a26
--- /dev/null
+++ b/cobbler/triggers/sync/post/migrate_ks.py
@@ -0,0 +1,29 @@
+#!/usr/bin/python
+"""script to migrate rendered kickstart files from cobbler to outside."""
+import logging
+
+from cobbler import api
+
+
+def main():
+ """main entry"""
+ cobbler_api = api.BootAPI()
+ for system in cobbler_api.systems():
+ cobbler_api.kickgen.generate_kickstart_for_system(system.name)
+ try:
+ with open(
+ '/var/www/cblr_ks/%s' % system.name, 'w'
+ ) as kickstart_file:
+ logging.info("Migrating kickstart for %s", system.name)
+ data = cobbler_api.kickgen.generate_kickstart_for_system(
+ system.name)
+ kickstart_file.write(data)
+ except Exception as error:
+ logging.error("Directory /var/www/cblr_ks/ does not exist.")
+ logging.exception(error)
+ raise error
+
+
+if __name__ == '__main__':
+ logging.info("Running kickstart migration")
+ main()
diff --git a/cobbler/triggers/sync/post/migrate_ks.sh b/cobbler/triggers/sync/post/migrate_ks.sh
deleted file mode 100644
index fa094de..0000000
--- a/cobbler/triggers/sync/post/migrate_ks.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-python /opt/compass/bin/migrate_ks.py