Class: Opsk::GeneratePuppet

Inherits:
Thor::Group
  • Object
show all
Includes:
Thorable, Thor::Actions
Defined in:
lib/opskeleton/generate_puppet.rb

Instance Method Summary collapse

Methods included from Thorable

#artifact, #artifact_path, included, #machines, #meta, #name, #type_of

Instance Method Details

#create_gemfile ⇒ Object



26
27
28
# File 'lib/opskeleton/generate_puppet.rb', line 26

def create_gemfile
  copy_file('templates/puppet/gemfile', "#{path}/Gemfile")
end

#create_heira ⇒ Object



55
56
57
58
59
60
61
62
63
64
# File 'lib/opskeleton/generate_puppet.rb', line 55

def create_heira
  hieradata = "#{path}/hieradata/"
  empty_directory(hieradata)
  %w(common virtualbox physical).each do |env|
    copy_file('templates/clean.yaml', "#{hieradata}/#{env}.yaml")
  end

  copy_file('templates/hiera.yaml', "#{path}/hiera.yaml")
  copy_file('templates/hiera_vagrant.yaml', "#{path}/hiera_vagrant.yaml")
end

#create_puppet_base ⇒ Object



44
45
46
47
48
49
50
51
52
53
# File 'lib/opskeleton/generate_puppet.rb', line 44

def create_puppet_base
  empty_directory("#{path}/static-modules/")
  empty_directory("#{path}/manifests/")
  template('templates/puppetfile.erb', "#{path}/Puppetfile")
  template('templates/puppet/default.erb', "#{path}/manifests/default.pp")
  copy_file('templates/puppet/run.sh', "#{path}/run.sh")
  copy_file('templates/puppet/boot.sh', "#{path}/boot.sh")
  chmod("#{path}/run.sh", 0755)
  chmod("#{path}/boot.sh", 0755)
end

#create_rakefile ⇒ Object



30
31
32
# File 'lib/opskeleton/generate_puppet.rb', line 30

def create_rakefile
  copy_file('templates/puppet/Rakefile', "#{path}/Rakefile")
end

#create_rvmrc ⇒ Object



38
39
40
41
42
# File 'lib/opskeleton/generate_puppet.rb', line 38

def create_rvmrc
  remove_file("#{path}/.rvmrc")
  template('templates/ruby-gemset.erb', "#{path}/.ruby-gemset")
  template('templates/ruby-version.erb', "#{path}/.ruby-version")
end

#create_vagrant_file ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'lib/opskeleton/generate_puppet.rb', line 16

def create_vagrant_file
  empty_directory(path)
  case options['os_type'] 
  when 'bsd'
    template('templates/puppet/vagrant_bsd.erb', "#{path}/Vagrantfile")
  else
    template('templates/puppet/vagrant.erb', "#{path}/Vagrantfile")
  end
end

#create_version ⇒ Object



34
35
36
# File 'lib/opskeleton/generate_puppet.rb', line 34

def create_version
  template('templates/puppet/opsk.yaml', "#{path}/opsk.yaml")
end

#git ⇒ Object



79
80
81
82
83
84
85
86
87
88
# File 'lib/opskeleton/generate_puppet.rb', line 79

def git
  if(!File.exists?("#{path}/.git"))
    copy_file('templates/gitignore', "#{path}/.gitignore")
    inside(path) do
 run('git init .')
 run('git add -A')
 run("git commit -m 'initial sandbox import'")
    end
  end
end

#path ⇒ Object



12
13
14
# File 'lib/opskeleton/generate_puppet.rb', line 12

def path 
  "#{name}-sandbox"
end

#readme ⇒ Object



66
67
68
69
# File 'lib/opskeleton/generate_puppet.rb', line 66

def readme
  template('templates/README.erb', "#{path}/README.md")
  copy_file('templates/LICENSE-2.0.txt',"#{path}/LICENSE-2.0.txt")
end

#server_spec ⇒ Object



75
76
77
# File 'lib/opskeleton/generate_puppet.rb', line 75

def server_spec
  directory('templates/parent/spec', "#{path}/spec")
end

#travis ⇒ Object



71
72
73
# File 'lib/opskeleton/generate_puppet.rb', line 71

def travis
  template('templates/parent/travis.erb', "#{path}/.travis.yml")
end