Class: Hyperwaverelay::Cli

Inherits:
Thor
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/hyperwaverelay.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.source_rootObject



10
11
12
# File 'lib/hyperwaverelay.rb', line 10

def self.source_root
  File.dirname(__FILE__)
end

Instance Method Details

#bootstrap(name) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/hyperwaverelay.rb', line 17

def bootstrap(name)
  empty_directory(name)
  ["group_vars","host_vars","roles"].each do |dir|
    empty_directory("#{name}/#{dir}")
  end
  create_file "#{name}/.vault_password" do
    SecureRandom::base64(20)
  end
  create_file "#{name}/group_vars/all" do
    "---\n"
  end
  key = ::SSHKey.generate
  create_file "#{ENV['HOME']}/.ssh/ansible_deploy" do
    key.private_key
  end
  create_file "#{ENV['HOME']}/.ssh/ansible_deploy.pub" do
    key.ssh_public_key
  end
  template "hyperwaverelay/templates/ansible.cfg.tt", "#{name}/ansible.cfg"
end