| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | 
							- require 'yaml'
 
- require 'popen4'
 
- STDOUT.sync = true
 
- task :default => :build_full_ami
 
- ##########################################################################
 
- def run_command(cmd)
 
-   cmdrun = IO.popen(cmd)
 
-   output = cmdrun.read
 
-   cmdrun.close
 
-   if $?.to_i > 0
 
-     puts "count not run #{cmd}, it returned an error #{output}"
 
-     exit 2
 
-   end
 
-   puts "OK: ran command #{cmd}"
 
- end
 
- ##########################################################################
 
- hf = Dir.glob('ansible/playbook.yml')
 
- errors = []
 
- desc 'Check Playbook Syntax'
 
- task :lint_playbook do
 
-   hf.each do |playbook_file|
 
-     begin
 
-       YAML.load_file(playbook_file)
 
-     rescue Exception => e
 
-       errors << e.message
 
-     end
 
-   end
 
-   if errors.empty?
 
-     puts "Rake: #{hf.length} playbook files all checkout!"
 
-   else
 
-     errors.each do |err|
 
-       puts "ERROR: YAML parse errors"
 
-       puts err
 
-     end
 
-     exit 1
 
-   end
 
- end
 
- ##########################################################################
 
- desc 'Update the Galaxy Modules'
 
- task :update_galaxy do
 
-   puts 'Rake: updating galaxy modules'
 
-   run_command('cd ansible && rm -rf roles/* && ansible-galaxy install --roles-path roles -r requirements.yml')
 
- end
 
- task :validate_packer do
 
-   puts 'Rake: validating packer.json'
 
-   run_command('packer validate packer.json')
 
- end
 
- task :build_ami do
 
-   puts 'Rake: Building ami'
 
-   POpen4::popen4( "packer build packer.json" ) do |stdout, stderr, stdin|  
 
-     stdout.each do |line|  
 
-       puts line  
 
-     end
 
-   end  
 
- end
 
- desc 'Build the ami'
 
- task :build_full_ami => [:validate_packer, :update_galaxy, :lint_playbook, :build_ami] do
 
-   puts 'Rake: Building the ami '
 
- end
 
 
  |