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