daddy 0.4.8 → 0.4.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/itamae/cookbooks/jenkins/install.rb +78 -0
- data/{lib/tasks/jenkins/jenkins → itamae/templates/etc/sysconfig/jenkins.erb} +13 -2
- data/lib/capistrano/daddy.rb +1 -0
- data/lib/daddy/itamae.rb +35 -0
- data/lib/daddy/version.rb +1 -1
- data/lib/tasks/jenkins.rake +1 -23
- data/lib/tasks/task_helper.rb +15 -1
- metadata +37 -28
- data/lib/tasks/jenkins/install.sh +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2dee14fc0e9b6abc36ad974252320a866b79496e
|
4
|
+
data.tar.gz: ac69f857d7965258ba0215439f49f8130ab1e38a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9fee8a24bf52bb8bc4a7bbaa7868784093d8eae138d03fbb7841655c6fdf0896a4cc895af00242fed7e627733b91a2576f72bc63095752a47b28e92c38d7ce3
|
7
|
+
data.tar.gz: 974fcee2c899b2ca82fea96a3a158e462af847b6c801387a15f195968ab9e0b053ec2a66114d4bf8c78f3774a1cff28aa0d7218c9148ddbd7f150125fa2df8de
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require 'daddy/itamae'
|
2
|
+
|
3
|
+
ENV['DAD_JENKINS_URL'] ||= 'http://localhost:8080'
|
4
|
+
|
5
|
+
@os_version = "#{node[:platform_family]}-#{node[:platform_version]}"
|
6
|
+
case @os_version
|
7
|
+
when /rhel-6\.(.*?)/
|
8
|
+
package 'java-1.7.0-openjdk' do
|
9
|
+
user 'root'
|
10
|
+
end
|
11
|
+
when /rhel-7\.(.*?)/
|
12
|
+
package 'java-1.8.0-openjdk' do
|
13
|
+
user 'root'
|
14
|
+
end
|
15
|
+
else
|
16
|
+
raise "サポートしていないOSバージョンです。#{@os_version}"
|
17
|
+
end
|
18
|
+
|
19
|
+
execute '/etc/yum.repos.d/jenkins.repo' do
|
20
|
+
user 'root'
|
21
|
+
command <<-EOF
|
22
|
+
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
|
23
|
+
rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
|
24
|
+
EOF
|
25
|
+
not_if 'test -e /etc/yum.repos.d/jenkins.repo'
|
26
|
+
end
|
27
|
+
|
28
|
+
package 'jenkins' do
|
29
|
+
user 'root'
|
30
|
+
end
|
31
|
+
|
32
|
+
template '/etc/sysconfig/jenkins' do
|
33
|
+
user 'root'
|
34
|
+
group 'root'
|
35
|
+
owner 'root'
|
36
|
+
mode '644'
|
37
|
+
end
|
38
|
+
|
39
|
+
service 'jenkins' do
|
40
|
+
user 'root'
|
41
|
+
action [:enable, :start]
|
42
|
+
end
|
43
|
+
|
44
|
+
directory '/var/lib/jenkins/plugins' do
|
45
|
+
user 'root'
|
46
|
+
group 'jenkins'
|
47
|
+
owner 'jenkins'
|
48
|
+
end
|
49
|
+
|
50
|
+
directory 'tmp'
|
51
|
+
|
52
|
+
execute 'jenkins-cli.jar' do
|
53
|
+
cwd 'tmp'
|
54
|
+
command "wget #{ENV['DAD_JENKINS_URL']}/jnlpJars/jenkins-cli.jar"
|
55
|
+
not_if 'test -e jenkins-cli.jar'
|
56
|
+
end
|
57
|
+
|
58
|
+
@plugins = [
|
59
|
+
{:name => 'build-pipeline-plugin', :version => nil},
|
60
|
+
{:name => 'git', :version => nil},
|
61
|
+
{:name => 'git-client', :version => nil},
|
62
|
+
{:name => 'rake', :version => nil},
|
63
|
+
{:name => 'rubyMetrics', :version => nil},
|
64
|
+
{:name => 'htmlpublisher', :version => nil},
|
65
|
+
{:name => 'reverse-proxy-auth-plugin', :version => nil},
|
66
|
+
{:name => 'thinBackup', :version => nil}
|
67
|
+
]
|
68
|
+
@plugins.each do |plugin|
|
69
|
+
execute "/var/lib/jenkins/plugins/#{plugin[:name]}" do
|
70
|
+
cwd 'tmp'
|
71
|
+
command "java -jar jenkins-cli.jar -s #{ENV['DAD_JENKINS_URL']} install-plugin #{plugin[:name]}"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
execute 'restart jenkins' do
|
76
|
+
cwd 'tmp'
|
77
|
+
command "java -jar jenkins-cli.jar -s #{ENV['DAD_JENKINS_URL']} safe-restart"
|
78
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
## Path: Development/Jenkins
|
2
|
-
## Description:
|
2
|
+
## Description: Jenkins Continuous Integration Server
|
3
3
|
## Type: string
|
4
4
|
## Default: "/var/lib/jenkins"
|
5
5
|
## ServiceRestart: jenkins
|
@@ -29,12 +29,23 @@ JENKINS_JAVA_CMD=""
|
|
29
29
|
JENKINS_USER="jenkins"
|
30
30
|
|
31
31
|
## Type: string
|
32
|
+
## Default: "false"
|
33
|
+
## ServiceRestart: jenkins
|
34
|
+
#
|
35
|
+
# Whether to skip potentially long-running chown at the
|
36
|
+
# $JENKINS_HOME location. Do not enable this, "true", unless
|
37
|
+
# you know what you're doing. See JENKINS-23273.
|
38
|
+
#
|
39
|
+
#JENKINS_INSTALL_SKIP_CHOWN="false"
|
40
|
+
|
41
|
+
## Type: string
|
32
42
|
## Default: "-Djava.awt.headless=true"
|
33
43
|
## ServiceRestart: jenkins
|
34
44
|
#
|
35
45
|
# Options to pass to java when running Jenkins.
|
36
46
|
#
|
37
|
-
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"
|
47
|
+
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true ${JENKINS_JAVA_OPTIONS}"
|
48
|
+
JENKINS_JAVA_OPTIONS="-Dhudson.model.DirectoryBrowserSupport.CSP=\"sandbox allow-same-origin allow-scripts; default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline';\" ${JENKINS_JAVA_OPTIONS}"
|
38
49
|
|
39
50
|
## Type: integer(0:65535)
|
40
51
|
## Default: 8080
|
data/lib/capistrano/daddy.rb
CHANGED
data/lib/daddy/itamae.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'itamae/resource/remote_file'
|
2
|
+
|
3
|
+
module Itamae
|
4
|
+
module Resource
|
5
|
+
class Template
|
6
|
+
|
7
|
+
def find_source_file_with_daddy_convention
|
8
|
+
begin
|
9
|
+
ret = find_source_file_without_daddy_convention
|
10
|
+
rescue SourceNotFoundError => e
|
11
|
+
if attributes.source == :auto
|
12
|
+
ret = find_source_file_in_templates
|
13
|
+
else
|
14
|
+
raise e
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
ret
|
19
|
+
end
|
20
|
+
|
21
|
+
def find_source_file_in_templates
|
22
|
+
itamae_dir = ::File.expand_path('../../../itamae', __FILE__)
|
23
|
+
path = ::File.join(itamae_dir, source_file_dir, "#{attributes.path}.erb")
|
24
|
+
if ::File.exist?(path)
|
25
|
+
path
|
26
|
+
else
|
27
|
+
raise SourceNotFoundError, "source file is not found (searched in daddy path: #{path})"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
alias_method :find_source_file_without_daddy_convention, :find_source_file
|
32
|
+
alias_method :find_source_file, :find_source_file_with_daddy_convention
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/daddy/version.rb
CHANGED
data/lib/tasks/jenkins.rake
CHANGED
@@ -5,29 +5,7 @@ namespace :dad do
|
|
5
5
|
|
6
6
|
desc 'Jenkinsをインストールします。'
|
7
7
|
task :install do
|
8
|
-
|
9
|
-
|
10
|
-
script = File.join(File.dirname(__FILE__), 'jenkins', 'install.sh')
|
11
|
-
run "bash -ex #{script}"
|
12
|
-
|
13
|
-
plugins = [
|
14
|
-
{:name => 'build-pipeline-plugin', :version => '1.4.3'},
|
15
|
-
{:name => 'git', :version => '2.2.5'},
|
16
|
-
{:name => 'git-client', :version => '1.10.2'},
|
17
|
-
{:name => 'rake', :version => '1.8.0'},
|
18
|
-
{:name => 'rubyMetrics', :version => '1.6.2'},
|
19
|
-
{:name => 'htmlpublisher', :version => '1.3'},
|
20
|
-
{:name => 'reverse-proxy-auth-plugin', :version => '1.4.0'},
|
21
|
-
{:name => 'thinBackup', :version => '1.7.4'}
|
22
|
-
]
|
23
|
-
plugins.each do |p|
|
24
|
-
download_path = "tmp/#{p[:name]}-#{p[:version]}.hpi"
|
25
|
-
unless File.exist?(download_path)
|
26
|
-
run "sudo wget http://updates.jenkins-ci.org/download/plugins/#{p[:name]}/#{p[:version]}/#{p[:name]}.hpi -O #{download_path}"
|
27
|
-
end
|
28
|
-
|
29
|
-
run "sudo cp -f #{download_path} /var/lib/jenkins/plugins/#{p[:name]}.hpi"
|
30
|
-
end
|
8
|
+
run_itamae 'jenkins/install'
|
31
9
|
end
|
32
10
|
|
33
11
|
namespace :nginx do
|
data/lib/tasks/task_helper.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'rake'
|
2
2
|
require 'erb'
|
3
3
|
require 'yaml'
|
4
|
-
require File.
|
4
|
+
require File.expand_path('../../daddy/version', __FILE__)
|
5
5
|
|
6
6
|
def self.daddy_version
|
7
7
|
Daddy::VERSION
|
@@ -23,6 +23,10 @@ def self.template_dir
|
|
23
23
|
File.join(File.dirname(File.dirname(File.dirname(__FILE__))), 'templates')
|
24
24
|
end
|
25
25
|
|
26
|
+
def self.cookbook_dir
|
27
|
+
File.expand_path('../../../itamae/cookbooks', __FILE__)
|
28
|
+
end
|
29
|
+
|
26
30
|
def self.dry_run?
|
27
31
|
%w{ DRY_RUN DR }.each do |key|
|
28
32
|
return true if %w{ true t yes y 1 }.include?(ENV[key].to_s.downcase)
|
@@ -97,3 +101,13 @@ def self.run(*commands)
|
|
97
101
|
end
|
98
102
|
end
|
99
103
|
end
|
104
|
+
|
105
|
+
def self.run_itamae(recipe)
|
106
|
+
options = []
|
107
|
+
options << '--ohai'
|
108
|
+
options << '--log-level=debug' if ENV['DEBUG']
|
109
|
+
|
110
|
+
recipe = "#{recipe}.rb" unless recipe.end_with?('.rb')
|
111
|
+
|
112
|
+
run "bundle exec itamae local #{options.join(' ')} #{File.join(cookbook_dir, recipe)}"
|
113
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: daddy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ichy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capybara
|
@@ -42,16 +42,16 @@ dependencies:
|
|
42
42
|
name: ci_reporter
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 2.0
|
47
|
+
version: '2.0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 2.0
|
54
|
+
version: '2.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: database_cleaner
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,62 +86,70 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0.
|
89
|
+
version: '0.4'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0.
|
96
|
+
version: '0.4'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: itamae
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '1.
|
103
|
+
version: '1.9'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '1.
|
110
|
+
version: '1.9'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: ohai
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - "
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: 3.2.0
|
118
|
-
- - "<"
|
115
|
+
- - "~>"
|
119
116
|
- !ruby/object:Gem::Version
|
120
|
-
version:
|
117
|
+
version: '8.8'
|
121
118
|
type: :runtime
|
122
119
|
prerelease: false
|
123
120
|
version_requirements: !ruby/object:Gem::Requirement
|
124
121
|
requirements:
|
125
|
-
- - "
|
122
|
+
- - "~>"
|
126
123
|
- !ruby/object:Gem::Version
|
127
|
-
version:
|
128
|
-
|
124
|
+
version: '8.8'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: poltergeist
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
129
130
|
- !ruby/object:Gem::Version
|
130
|
-
version:
|
131
|
+
version: '1.8'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '1.8'
|
131
139
|
- !ruby/object:Gem::Dependency
|
132
|
-
name: rails
|
140
|
+
name: rails
|
133
141
|
requirement: !ruby/object:Gem::Requirement
|
134
142
|
requirements:
|
135
|
-
- - "
|
143
|
+
- - "~>"
|
136
144
|
- !ruby/object:Gem::Version
|
137
|
-
version:
|
145
|
+
version: '4.1'
|
138
146
|
type: :runtime
|
139
147
|
prerelease: false
|
140
148
|
version_requirements: !ruby/object:Gem::Requirement
|
141
149
|
requirements:
|
142
|
-
- - "
|
150
|
+
- - "~>"
|
143
151
|
- !ruby/object:Gem::Version
|
144
|
-
version:
|
152
|
+
version: '4.1'
|
145
153
|
- !ruby/object:Gem::Dependency
|
146
154
|
name: resque
|
147
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -225,6 +233,8 @@ files:
|
|
225
233
|
- app/assets/stylesheets/datepicker.css.scss
|
226
234
|
- app/assets/stylesheets/ympicker.css.scss
|
227
235
|
- bin/dad
|
236
|
+
- itamae/cookbooks/jenkins/install.rb
|
237
|
+
- itamae/templates/etc/sysconfig/jenkins.erb
|
228
238
|
- lib/active_support/cache/null_store.rb
|
229
239
|
- lib/capistrano/daddy.rb
|
230
240
|
- lib/capistrano/tasks/update_linked_files.rake
|
@@ -247,6 +257,7 @@ files:
|
|
247
257
|
- lib/daddy/git.rb
|
248
258
|
- lib/daddy/helpers/html_helper.rb
|
249
259
|
- lib/daddy/http_client.rb
|
260
|
+
- lib/daddy/itamae.rb
|
250
261
|
- lib/daddy/model.rb
|
251
262
|
- lib/daddy/models/crud_extension.rb
|
252
263
|
- lib/daddy/models/query_extension.rb
|
@@ -288,8 +299,6 @@ files:
|
|
288
299
|
- lib/tasks/god/logrotate
|
289
300
|
- lib/tasks/god/master.conf
|
290
301
|
- lib/tasks/jenkins.rake
|
291
|
-
- lib/tasks/jenkins/install.sh
|
292
|
-
- lib/tasks/jenkins/jenkins
|
293
302
|
- lib/tasks/jenkins/nginx.conf.erb
|
294
303
|
- lib/tasks/kibana.rake
|
295
304
|
- lib/tasks/kibana/config.js.erb
|
@@ -1,13 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
|
3
|
-
SCRIPT_BASE=`dirname $0`
|
4
|
-
|
5
|
-
sudo yum install java-1.7.0-openjdk
|
6
|
-
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
|
7
|
-
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
|
8
|
-
sudo yum install jenkins
|
9
|
-
sudo cp -f ${SCRIPT_BASE}/jenkins /etc/sysconfig/jenkins
|
10
|
-
sudo chown root:root /etc/sysconfig/jenkins
|
11
|
-
sudo chmod 600 /etc/sysconfig/jenkins
|
12
|
-
sudo mkdir -p /var/lib/jenkins/plugins
|
13
|
-
sudo chown jenkins:jenkins /var/lib/jenkins/plugins
|