From 8e9853cd4c66e88edf38fb3c724ba304989efeb4 Mon Sep 17 00:00:00 2001 From: Matthew Oliver Date: Wed, 5 Feb 2014 16:52:46 +1100 Subject: [PATCH] Nodepool image logs accessible via HTTP Nodepool logs the creation of nodepool images to an image.log which are only accessible to root users. This change updates the nodepool puppet configuration to install apache and allows users to access these image logs. Change-Id: I867030c258d00ce017c69812c133f3419215d045 --- modules/nodepool/manifests/init.pp | 31 +++++++++++++++++-- .../nodepool.logging.conf.erb} | 2 +- .../openstack_project/manifests/nodepool.pp | 13 +++++--- 3 files changed, 39 insertions(+), 7 deletions(-) rename modules/nodepool/{files/logging.conf => templates/nodepool.logging.conf.erb} (93%) diff --git a/modules/nodepool/manifests/init.pp b/modules/nodepool/manifests/init.pp index 544d7147ca..fadb0e7a42 100644 --- a/modules/nodepool/manifests/init.pp +++ b/modules/nodepool/manifests/init.pp @@ -23,7 +23,10 @@ class nodepool ( $nodepool_ssh_private_key = '', $git_source_repo = 'https://git.openstack.org/openstack-infra/nodepool', $revision = 'master', - $statsd_host = '' + $statsd_host = '', + $vhost_name = 'nodepool.openstack.org', + $image_log_document_root = '/var/log/nodepool/image', + $enable_image_log_via_http = false, ) { class { 'mysql::server': @@ -144,7 +147,7 @@ class nodepool ( mode => '0444', owner => 'root', group => 'root', - source => 'puppet:///modules/nodepool/logging.conf', + content => template('nodepool/nodepool.logging.conf.erb'), notify => Service['nodepool'], } @@ -162,4 +165,28 @@ class nodepool ( hasrestart => true, require => File['/etc/init.d/nodepool'], } + + if $enable_image_log_via_http == true { + # Setup apache for image log access + include apache + + apache::vhost { $vhost_name: + port => 80, + priority => '50', + docroot => $image_log_document_root, + } + + if $image_log_document_root != '/var/log/nodepool' { + file { $image_log_document_root: + ensure => directory, + mode => '0755', + owner => 'nodepool', + group => 'nodepool', + require => [ + User['nodepool'], + File['/var/log/nodepool'], + ], + } + } + } } diff --git a/modules/nodepool/files/logging.conf b/modules/nodepool/templates/nodepool.logging.conf.erb similarity index 93% rename from modules/nodepool/files/logging.conf rename to modules/nodepool/templates/nodepool.logging.conf.erb index d70407c5cc..b626331044 100644 --- a/modules/nodepool/files/logging.conf +++ b/modules/nodepool/templates/nodepool.logging.conf.erb @@ -49,7 +49,7 @@ args=('/var/log/nodepool/nodepool.log', 'midnight', 1, 30,) level=INFO class=logging.handlers.TimedRotatingFileHandler formatter=simple -args=('/var/log/nodepool/image.log', 'midnight', 1, 30,) +args=('<%= @image_log_document_root %>/image.log', 'midnight', 1, 30,) [formatter_simple] format=%(asctime)s %(levelname)s %(name)s: %(message)s diff --git a/modules/openstack_project/manifests/nodepool.pp b/modules/openstack_project/manifests/nodepool.pp index 7970d8e4aa..faf93725b4 100644 --- a/modules/openstack_project/manifests/nodepool.pp +++ b/modules/openstack_project/manifests/nodepool.pp @@ -19,16 +19,21 @@ class openstack_project::nodepool( $tripleo_username ='', $tripleo_password ='', $tripleo_project ='', + $image_log_document_root = '/var/log/nodepool/image', + $enable_image_log_via_http = true, ) { class { 'openstack_project::server': sysadmins => $sysadmins, + iptables_public_tcp_ports => [80], } class { '::nodepool': - mysql_root_password => $mysql_root_password, - mysql_password => $mysql_password, - nodepool_ssh_private_key => $nodepool_ssh_private_key, - statsd_host => $statsd_host, + mysql_root_password => $mysql_root_password, + mysql_password => $mysql_password, + nodepool_ssh_private_key => $nodepool_ssh_private_key, + statsd_host => $statsd_host, + image_log_document_root => $image_log_document_root, + enable_image_log_via_http => $enable_image_log_via_http, } file { '/etc/nodepool/nodepool.yaml':