From 2d08aa9cb0b95817fa8b11ff230d0b9f95fece84 Mon Sep 17 00:00:00 2001 From: Dan Bode Date: Wed, 13 Mar 2013 09:39:42 -0700 Subject: [PATCH 1/2] Add ability to configure installed openstack version perform a hiera lookup for the openstack_version to use to setup the appropriate packages(for ubuntu). Ensure that setup/hosts.pp is run before (and not from within) setup/os.pp. This is b/c hiera is not required to be installed before the os specific setup manifest is run. --- .gitignore | 1 + Vagrantfile | 18 +++++++++--------- manifests/setup/hosts.pp | 10 +++++++--- manifests/setup/precise64.pp | 6 ++++-- 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index 99cf314..8bcc160 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ Puppetfile.lock my.log *swp logs +hiera_data/jenkins.yaml diff --git a/Vagrantfile b/Vagrantfile index 9f4cd3b..69b9d6d 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -185,6 +185,15 @@ Vagrant::Config.run do |config| puppet_options = ["--certname=#{node_name}"] puppet_options.merge!({'--verbose', '--show_diff'}) if v_config['verbose'] + # configure hosts, install hiera + # perform pre-steps that always need to occur + agent.vm.provision(:puppet, :pp_path => "/etc/puppet") do |puppet| + puppet.manifests_path = 'manifests' + puppet.manifest_file = "setup/hosts.pp" + puppet.module_path = 'modules' + puppet.options = puppet_options + end + if v_config['update_repos'] == true agent.vm.provision(:puppet, :pp_path => "/etc/puppet") do |puppet| @@ -194,15 +203,6 @@ Vagrant::Config.run do |config| puppet.options = puppet_options end - else - - agent.vm.provision(:puppet, :pp_path => "/etc/puppet") do |puppet| - puppet.manifests_path = 'manifests' - puppet.manifest_file = "setup/hosts.pp" - puppet.module_path = 'modules' - puppet.options = puppet_options - end - end # export a data directory that can be used by hiera diff --git a/manifests/setup/hosts.pp b/manifests/setup/hosts.pp index 7db0aee..c95a390 100644 --- a/manifests/setup/hosts.pp +++ b/manifests/setup/hosts.pp @@ -1,5 +1,10 @@ # -# specify a connection to the hardcoded puppet master +# this manifest performs essentially environment configuration +# that needs to be run before anything is configured +# + +# +# setup basic dns in /etc/hosts # host { 'puppetmaster': ip => '172.16.0.31', host_aliases => ['puppetmaster.puppetlabs.lan']; @@ -33,8 +38,7 @@ package { ['make', 'gcc']: ensure => present, } -> -# install hiera -# TODO pretty sure hiera-puppet is not installed b/c I installed the module +# install hiera, to support Puppet pre 3.0 package { ['hiera', 'hiera-puppet', 'ruby-debug']: ensure => present, provider => 'gem', diff --git a/manifests/setup/precise64.pp b/manifests/setup/precise64.pp index 69802cd..51ad78b 100644 --- a/manifests/setup/precise64.pp +++ b/manifests/setup/precise64.pp @@ -1,12 +1,14 @@ -import 'hosts.pp' +#import 'hosts.pp' # # This puppet manifest is already applied first to do some environment specific things # +$openstack_version = hiera('openstack_version', 'folsom') + apt::source { 'openstack_folsom': location => "http://ubuntu-cloud.archive.canonical.com/ubuntu", - release => "precise-updates/folsom", + release => "precise-updates/${openstack_version}", repos => "main", required_packages => 'ubuntu-cloud-keyring', } From 2d4f76f7aa0437df8c10e2ed61dd117e09b83877 Mon Sep 17 00:00:00 2001 From: Dan Bode Date: Wed, 13 Mar 2013 09:40:27 -0700 Subject: [PATCH 2/2] move wget code to be before node blocks just to organize things. --- manifests/setup/hosts.pp | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/manifests/setup/hosts.pp b/manifests/setup/hosts.pp index c95a390..a463863 100644 --- a/manifests/setup/hosts.pp +++ b/manifests/setup/hosts.pp @@ -58,6 +58,19 @@ file { '/etc/puppet/hiera.yaml': :datadir: /etc/puppet/hiera_data' } + +package { 'wget': + ensure => present, +} + +file_line { 'wgetrc_proxy': + ensure => present, + line => "https_proxy = http://172.16.0.1:3128/", + path => '/etc/wgetrc', + require => Package['wget'], +} + +# not sure if this is the best place for my puppetmaster config node /puppetmaster/ { Ini_setting { path => '/etc/puppet/puppet.conf', @@ -79,16 +92,4 @@ node /puppetmaster/ { } } -package { 'wget': - ensure => present, -} - -file_line { 'wgetrc_proxy': - ensure => present, - line => "https_proxy = http://172.16.0.1:3128/", - path => '/etc/wgetrc', - require => Package['wget'], -} - - node default { }