scud_bootstrap_basic 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
@@ -0,0 +1,20 @@
1
+ #FIXME: find better way of setting the paths to the required tasks
2
+ #
3
+ require "#{File.dirname(__FILE__)}/tasks/puppet"
4
+ require "#{File.dirname(__FILE__)}/tasks/apt"
5
+
6
+
7
+ set :user, 'ubuntu'
8
+ set :ssh_options, { :forward_agent => true }
9
+
10
+ #FIXME: how to get scud to ask for sudo password ?
11
+ set :use_sudo, true
12
+
13
+ ssh_options[:keys] = "~/.ssh/ec2/aws-sydney.pem"
14
+
15
+ # this task must always be named bootstrap.
16
+ #
17
+ task :bootstrap do
18
+ puppet_client
19
+ aptupgrade
20
+ end
@@ -0,0 +1,31 @@
1
+ Capistrano::Configuration.instance(:must_exist).load do
2
+ desc <<-DESC
3
+ noninteractive apt-get upgrade.
4
+
5
+ This task will complete an 'apt-get update' and then an 'apt-get upgrade'
6
+
7
+ *WARNING* the following flags are passed to 'apt-get upgrade'
8
+
9
+ * DEBIAN_FRONTEND=noninteractive
10
+ * --yes
11
+
12
+ Options:
13
+
14
+ HOSTS='fqdn' # fqdn of host to upgrade
15
+ FORCE=true # add --allow-unauthenticated for unsigned packages
16
+
17
+ Examples:
18
+
19
+ cap node:aptupgrade HOSTFILTER='web-01.example.com'
20
+ cap node:aptupgrade HOSTFILTER='web-01.example.com' FORCE=true
21
+
22
+ DESC
23
+ task :aptupgrade do
24
+ run "#{sudo} apt-get update --yes --quiet"
25
+ if ENV['FORCE']
26
+ run "#{sudo} DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes --allow-unauthenticated"
27
+ else
28
+ run "#{sudo} DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes --quiet"
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,31 @@
1
+ Capistrano::Configuration.instance(:must_exist).load do
2
+ desc 'bootstrap puppet client.'
3
+ task :puppet_client do
4
+ # clean the slate
5
+ run "#{sudo} apt-get remove --purge -y puppet libaugeas-ruby"
6
+ run "#{sudo} rm -rf /etc/puppet"
7
+ #
8
+ # add puppetlabs apt repos
9
+ filename = "/etc/apt/sources.list.d/puppetlabs.list"
10
+ run "echo 'deb http://apt.puppetlabs.com/ precise main' | #{sudo} tee #{filename}"
11
+ run "#{sudo} apt-get -yq update"
12
+ #
13
+ run "#{sudo} apt-get install -yq ruby ruby1.8 rubygems libaugeas-ruby git"
14
+ run "#{sudo} apt-get install -yq puppet=2.7.23-1puppetlabs1 puppet-common=2.7.23-1puppetlabs1"
15
+
16
+ # Prep puppet.conf so the first Puppet run works.
17
+ puppet_dot_conf = <<-END.gsub(/^ {8}/, '')
18
+ [main]
19
+ logdir=/var/log/puppet
20
+ vardir=/var/lib/puppet
21
+ ssldir=/var/lib/puppet/ssl
22
+ rundir=/var/run/puppet
23
+ factpath=$vardir/lib/facter
24
+ templatedir=$confdir/templates
25
+ pluginsync=true
26
+ END
27
+ put puppet_dot_conf, "/tmp/puppet.conf.new"
28
+ run "#{sudo} cp /tmp/puppet.conf.new /etc/puppet/puppet.conf"
29
+ end
30
+ end
31
+
@@ -0,0 +1,3 @@
1
+ module ScudBootstrapBasic
2
+ VERSION = '0.0.1'
3
+ end
@@ -0,0 +1,18 @@
1
+ # Ensure we require the local version and not one we might have installed already
2
+ require File.join([File.dirname(__FILE__),'lib','scud_bootstrap_basic','version.rb'])
3
+ spec = Gem::Specification.new do |s|
4
+ s.name = 'scud_bootstrap_basic'
5
+ s.version = ScudBootstrapBasic::VERSION
6
+ s.author = 'Mick Pollard'
7
+ s.email = 'mick.pollard@bulletproof.net'
8
+ s.homepage = 'http://www.bulletproof.net'
9
+ s.platform = Gem::Platform::RUBY
10
+ s.summary = 'very basic bootstrap task to be run from scud (http://aussielunix.github.io/scud/).'
11
+ s.files = Dir['Gemfile', 'scud_bootstrap_basic.gemspec', 'lib/**/*']
12
+ s.require_paths << 'lib'
13
+ s.has_rdoc = false
14
+ s.extra_rdoc_files = nil
15
+ s.add_runtime_dependency('capistrano')
16
+ s.add_development_dependency('rake')
17
+ s.add_development_dependency('bundler')
18
+ end
metadata ADDED
@@ -0,0 +1,105 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: scud_bootstrap_basic
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Mick Pollard
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-09-25 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: capistrano
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: bundler
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ description:
63
+ email: mick.pollard@bulletproof.net
64
+ executables: []
65
+ extensions: []
66
+ extra_rdoc_files: []
67
+ files:
68
+ - Gemfile
69
+ - scud_bootstrap_basic.gemspec
70
+ - lib/scud_bootstrap_basic/version.rb
71
+ - lib/scud_bootstrap_basic/tasks/apt.rb
72
+ - lib/scud_bootstrap_basic/tasks/puppet.rb
73
+ - lib/scud_bootstrap_basic/bootstrap.rb
74
+ homepage: http://www.bulletproof.net
75
+ licenses: []
76
+ post_install_message:
77
+ rdoc_options: []
78
+ require_paths:
79
+ - lib
80
+ - lib
81
+ required_ruby_version: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ segments:
88
+ - 0
89
+ hash: -3786030460603463471
90
+ required_rubygems_version: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ! '>='
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ segments:
97
+ - 0
98
+ hash: -3786030460603463471
99
+ requirements: []
100
+ rubyforge_project:
101
+ rubygems_version: 1.8.23
102
+ signing_key:
103
+ specification_version: 3
104
+ summary: very basic bootstrap task to be run from scud (http://aussielunix.github.io/scud/).
105
+ test_files: []