diff options
author | Thomas Wiest <twiest@redhat.com> | 2014-10-28 14:43:15 -0400 |
---|---|---|
committer | Thomas Wiest <twiest@redhat.com> | 2014-10-29 12:00:06 -0400 |
commit | 525b741b6fbb178b11c6a2b3ccd4bf9ff9e98e0c (patch) | |
tree | 6b063a310bb71cae17f3b6a910dca5ac1584f829 /roles/docker_img_puppet/files/puppet_container/start.rb | |
parent | fd788c250c1fbdc5cc188aa29812c65ebafecc59 (diff) | |
download | openshift-525b741b6fbb178b11c6a2b3ccd4bf9ff9e98e0c.tar.gz openshift-525b741b6fbb178b11c6a2b3ccd4bf9ff9e98e0c.tar.bz2 openshift-525b741b6fbb178b11c6a2b3ccd4bf9ff9e98e0c.tar.xz openshift-525b741b6fbb178b11c6a2b3ccd4bf9ff9e98e0c.zip |
Added Docker image build stuff
Diffstat (limited to 'roles/docker_img_puppet/files/puppet_container/start.rb')
-rwxr-xr-x | roles/docker_img_puppet/files/puppet_container/start.rb | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/roles/docker_img_puppet/files/puppet_container/start.rb b/roles/docker_img_puppet/files/puppet_container/start.rb new file mode 100755 index 000000000..f1dd940ba --- /dev/null +++ b/roles/docker_img_puppet/files/puppet_container/start.rb @@ -0,0 +1,86 @@ +#!/usr/bin/env ruby + +require 'fileutils' + +CTR_CONFIG_FLAG = '/shared/var/run/ctr-ipc/flag/ctr_configured' + + +class Start + def self.setup_shared_dirs() + puts '_' + puts 'Setting up dirs in shared volume' + puts '--------------------------------' + mtab = File.read('/etc/mtab') + + shared_dirs = mtab.grep(/ \/shared\//).collect { |line| line.split(' ')[1] } + + shared_dirs.each do |sh_dir| + orig_dir = sh_dir.gsub(/^\/shared/,'') + + next if File.symlink?(orig_dir) + + if File.exist?(orig_dir) + cmd = "cp -vaf #{orig_dir} #{File.dirname(sh_dir)}" + puts "Running: #{cmd}" + system(cmd) + + cmd = "rm -vrf #{orig_dir}" + puts "Running: #{cmd}" + system(cmd) + end + + FileUtils.ln_s(sh_dir, orig_dir, {:verbose => true}) + end + puts 'Done.' + puts '_' + end + + def self.run_puppet_agent() + puts '_' + puts 'Running Puppet Agent' + puts '--------------------' + exitcode = nil + 1.upto(3) do |ctr| + unless ctr == 1 + puts '_' + puts "Previous puppet run failed with exit code [#{exitcode}], running again..." + puts '_' + end + + system("bash -c 'time /usr/bin/puppet agent -t'") + exitcode = $?.exitstatus + puts "Exit Code [#{exitcode}]" + + break if exitcode == 0 || exitcode == 2 + end + + raise "Puppet run failed, retries exhausted." if exitcode != 0 && exitcode != 2 + + puts 'Done.' + puts '_' + + puts '_' + puts 'Creating ctr_configured flag' + FileUtils.mkdir_p(File.dirname(CTR_CONFIG_FLAG)) + FileUtils.touch(CTR_CONFIG_FLAG) + puts 'Done.' + puts '_' + end + + def self.exec_puppetd() + puts '_' + puts 'Exec-ing puppet daemon' + puts '---------------------' + puts "Starting puppet agent..." + exec("bash -c '/usr/bin/puppet agent --no-daemonize --detailed-exitcodes --verbose'") + end +end + +if __FILE__ == $0 + $stdout.sync = true + $stderr.sync = true + + Start.setup_shared_dirs() + Start.run_puppet_agent() + Start.exec_puppetd() +end |