scud_bootstrap_basic 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Gemfile
ADDED
@@ -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,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: []
|