OSDN Git Service

Bug fix: Docker volumes management. jenkins-grid-0.2.2
authorwhitestar <whitestar@gaea.test>
Wed, 15 Feb 2017 14:06:39 +0000 (23:06 +0900)
committerwhitestar <whitestar@gaea.test>
Wed, 15 Feb 2017 14:06:39 +0000 (23:06 +0900)
cookbooks/jenkins-grid/CHANGELOG.md
cookbooks/jenkins-grid/README.md
cookbooks/jenkins-grid/attributes/default.rb
cookbooks/jenkins-grid/metadata.rb
cookbooks/jenkins-grid/recipes/docker-compose.rb

index 93c9f8e..53083e9 100644 (file)
@@ -1,5 +1,10 @@
 # jenkins-grid CHANGELOG
 
+0.2.2
+-----
+- Bug fix: Docker volumes management.
+- revises documents.
+
 0.2.1
 -----
 - bug fix.
index fae4a1c..d5c22af 100644 (file)
@@ -6,14 +6,15 @@ This cookbook sets up a Jenkins service.
 ## Contents
 
 - [Requirements](#requirements)
-  - [platforms](#platforms)
-  - [packages](#packages)
+    - [platforms](#platforms)
+    - [packages](#packages)
 - [Attributes](#attributes)
 - [Usage](#usage)
-  - [Recipes](#recipes)
-    - [jenkins-grid::default](#jenkins-griddefault)
-    - [jenkins-grid::docker-compose](#jenkins-griddocker-compose)
-  - [Role Examples](#role-examples)
+    - [Recipes](#recipes)
+        - [jenkins-grid::default](#jenkins-griddefault)
+        - [jenkins-grid::docker-compose](#jenkins-griddocker-compose)
+    - [Role Examples](#role-examples)
+    - [SSL server keys and certificates management by ssl_cert cookbook](#ssl-server-keys-and-certificates-management-by-ssl_cert-cookbook)
 - [License and Authors](#license-and-authors)
 
 ## Requirements
@@ -160,12 +161,61 @@ override_attributes(
 )
 ```
 
+### SSL server keys and certificates management by ssl_cert cookbook
+
+- create vault items.
+
+```text
+$ ruby -rjson -e 'puts JSON.generate({"private" => File.read("jenkins_io_example_com.prod.key")})' \
+> > ~/tmp/jenkins_io_example_com.prod.key.json
+
+$ knife vault create ssl_server_keys jenkins.io.example.com.prod \
+> --json ~/tmp/jenkins_io_example_com.prod.key.json
+
+$ ruby -rjson -e 'puts JSON.generate({"public" => File.read("jenkins_io_example_com.prod.crt")})' \
+> > ~/tmp/jenkins_io_example_com.prod.crt.json
+
+$ knife vault create ssl_server_certs jenkins.io.example.com.prod \
+> --json ~/tmp/jenkins_io_example_com.prod.crt.json
+```
+
+- grant reference permission to the Jenkins host
+
+```text
+$ knife vault update ssl_server_keys  jenkins.io.example.com.prod -S 'name:jenkins-host.example.com'
+$ knife vault update ssl_server_certs jenkins.io.example.com.prod -S 'name:jenkins-host.example.com'
+```
+
+- modify run_list and attributes
+
+```ruby
+run_list(
+  'recipe[ssl_cert::server_key_pairs]',
+  'recipe[jenkins-grid::docker-compose]',
+)
+
+override_attributes(
+  'ssl_cert' => {
+    'common_names' => [
+      'jenkins.io.example.com',
+    ],
+  },
+  'jenkins-grid' => {
+    'with_ssl_cert_cookbook' => true,
+    'ssl_cert' => {
+      'common_name' => 'jenkins.io.example.com',
+    },
+    # ...
+  },
+)
+```
+
 ## License and Authors
 
 - Author:: whitestar at osdn.jp
 
 ```text
-Copyright 2016, whitestar
+Copyright 2016-2017, whitestar
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
index c4b5772..1db3e62 100644 (file)
@@ -40,16 +40,16 @@ default['jenkins-grid']['docker-compose']['config'] = {
     'jenkins' => {
       'restart' => 'always',
       'image' => 'jenkins:2.19.4',
-=begin
-      'expose' => [
-        '8083',  # for https
-      ],
+      #'expose' => [
+      #  #'8083',  # for https
+      #],
       'ports' => [
         #'8080:8080',
-        '8083:8083',
-        '50000:50000',
+        #'8083:8083',
+        #'50000:50000',
       ],
       'environment' => {
+=begin
         'JAVA_OPTS' => [
           '-Dhudson.footerURL=http://mycompany.com',
           '-Djava.util.logging.config.file=/var/jenkins_home/log.properties',
@@ -59,13 +59,17 @@ default['jenkins-grid']['docker-compose']['config'] = {
           '--httpsCertificate=/var/lib/jenkins/server.crt',
           '--httpsPrivateKey=/var/lib/jenkins/server.key',
         ].join(' '),
+=end
       },
       'volumes' => [
+=begin
+        # set automatically, if the node['jenkins-grid']['docker-compose']['jenkins_home']['path'] is not nil.
         "#{node['jenkins-grid']['docker-compose']['jenkins_home']['path']}:/var/jenkins_home",
+        # These volumes will be set by the concourse-ci::docker-compose recipe automatically.
         "#{server_cert_path(node['jenkins-grid']['ssl_cert']['common_name'])}:/var/lib/jenkins/server.crt:ro",
         "#{node['jenkins-grid']['docker-compose']['app_dir']}/certs/server.key:/var/lib/jenkins/server.key:ro",
-      ],
 =end
+      ],
     },
   },
 }
index 8d806e2..d24ef2a 100644 (file)
@@ -5,9 +5,9 @@ maintainer_email ''
 license          'Apache 2.0'
 description      'Installs/Configures jenkins-grid'
 long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
-version          '0.2.1'
+version          '0.2.2'
 source_url       'http://scm.osdn.jp/gitroot/metasearch/grid-chef-repo.git'
 issues_url       'https://osdn.jp/projects/metasearch/ticket'
 
-depends 'docker-grid', '>= 0.2.7'
+depends 'docker-grid', '>= 0.3.6'
 depends 'ssl_cert', '>= 0.3.3'
index a049b5f..d31e859 100644 (file)
@@ -21,24 +21,22 @@ doc_url = 'https://hub.docker.com/_/jenkins/'
 
 include_recipe 'docker-grid::compose'
 
-envs = {}
-java_opts = []
-jenkins_opts = []
-vols = []
-
 config = node['jenkins-grid']['docker-compose']['config']
 override_config = node.override['jenkins-grid']['docker-compose']['config']
 force_override_config = node.force_override['jenkins-grid']['docker-compose']['config']
 app_dir = node['jenkins-grid']['docker-compose']['app_dir']
 certs_dir = "#{app_dir}/certs"
 groovy_dir = "#{app_dir}/ref/init.groovy.d"
-#etc_dir = "#{app_dir}/etc"
+
+envs = {}
+java_opts = []
+jenkins_opts = []
+vols = config['services']['jenkins']['volumes'].to_a
 
 [
   app_dir,
   certs_dir,
   groovy_dir,
-  #etc_dir,
 ].each {|dir|
   resources(directory: dir) rescue directory dir do
     owner 'root'
@@ -96,7 +94,7 @@ vols.push("#{app_dir}/#{executors_conf}:/usr/share/jenkins/#{executors_conf}:ro"
 unless jenkins_opts.empty?
   if !config['services']['jenkins']['environment'].nil? \
     && !config['services']['jenkins']['environment']['JENKINS_OPTS'].nil?
-    jenkins_opts.unshift("#{config['services']['jenkins']['environment']['JENKINS_OPTS']}")
+    jenkins_opts.unshift(config['services']['jenkins']['environment']['JENKINS_OPTS'])
   end
   envs['JENKINS_OPTS'] = jenkins_opts.join(' ')
 end
@@ -104,7 +102,7 @@ end
 unless java_opts.empty?
   if !config['services']['jenkins']['environment'].nil? \
     && !config['services']['jenkins']['environment']['JAVA_OPTS'].nil?
-    java_opts.unshift("#{config['services']['jenkins']['environment']['JAVA_OPTS']}")
+    java_opts.unshift(config['services']['jenkins']['environment']['JAVA_OPTS'])
   end
   envs['JAVA_OPTS'] = java_opts.join(' ')
 end