travis-chef 0.0.5 → 0.0.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f3151dd532832b2272bb4c53228a5ba9661e6142
4
- data.tar.gz: ba6db4d25af83e003c5e78e196f5b578bf6f91dc
3
+ metadata.gz: 05da5e96a87a53845ffe425ad609efc05649c4d8
4
+ data.tar.gz: c6fffae51168da325c73e2cb72d2b574512d725c
5
5
  SHA512:
6
- metadata.gz: 26054e430ad34d040bf182ef883738cc69668fe9fe46a5e83ad9bc5d9df5ef9403c9f719d88ed21207d708d45c9cf897ee14a3909b49ed5f6b1545f071a29f5c
7
- data.tar.gz: 6904919f7efae7264cd9b62647e7c1d37f1b3c9fd337aafc6a9e6e1ff98184ffd9143cfd553391333c57fcef74fc901abfd6b80f632f9112167cc38b44e18fab
6
+ metadata.gz: 9f3c6737fedceb1a9fb235bc200aa8f80f513e86291c3c8495b1a3f48909dd2ecfced3e21f761e3602d3dd8cf1b9012e0e383a829a259fee4d20cf71c2e5c888
7
+ data.tar.gz: 85bf198ad3e0e68fa91aa38b28c90cdc27ad2c48bb34c2dc074c9b0c2e193d33d8c011c8579848ad9275e67d0adff6d9837ff689f616e74f192d20bf1e485249
data/script/travis-chef CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
  set -x
4
4
 
5
- if [ -f "${PWD%/}/.travis-envs" ]; then
5
+ if [ -n "${CHEF_ENVIRONMENTS}" ]; then
6
+ environments=( ${CHEF_ENVIRONMENTS} )
7
+ elif [ -f "${PWD%/}/.travis-envs" ]; then
6
8
  environments=( $(<"${PWD%/}/.travis-envs") )
7
9
  fi
8
10
 
@@ -24,6 +26,14 @@ load_ssh_key() {
24
26
  }
25
27
 
26
28
  setup_chef() {
29
+ if [ -n "${CHEF_ENVIRONMENTS}" ]; then
30
+ setup_chef_from_env
31
+ else
32
+ setup_chef_from_files
33
+ fi
34
+ }
35
+
36
+ setup_chef_from_files() {
27
37
  # Install chef gem to get knife
28
38
  gem install chef -v '~> 11.0' --no-rdoc --no-ri || exit $?
29
39
 
@@ -79,6 +89,59 @@ EOF
79
89
  decrypt ${CHEF_VALIDATOR} "${PWD%/}/.chef/${CHEF_ORG}-validator.pem" || exit $?
80
90
  }
81
91
 
92
+ setup_chef_from_env() {
93
+ # Install chef gem to get knife
94
+ gem install chef -v '~> 11.0' --no-rdoc --no-ri || exit $?
95
+
96
+ # Redefine CHEF_SERVER if possible using environment
97
+ if [ -n "${environment}" ]; then
98
+ chef_server_variable_name="CHEF_SERVER_${environment^^}"
99
+ if [ -n "${!chef_server_variable_name}" ]; then
100
+ CHEF_SERVER="${!chef_server_variable_name}"
101
+ fi
102
+ fi
103
+
104
+ # Determine Chef organization name from CHEF_SERVER
105
+ CHEF_ORG="${CHEF_SERVER##*/}"
106
+
107
+ # Redefine CHEF_USER if possible using environment
108
+ if [ -n "${environment}" ]; then
109
+ chef_user_variable_name="CHEF_USER_${environment^^}"
110
+ if [ -n "${!chef_user_variable_name}" ]; then
111
+ CHEF_USER="${!chef_user_variable_name}"
112
+ fi
113
+ fi
114
+
115
+ # Redefine CHEF_CLIENT if possible using environment
116
+ if [ -n "${environment}" ]; then
117
+ chef_client_variable_name="CHEF_CLIENT_${environment^^}"
118
+ if [ -n "${!chef_client_variable_name}" ]; then
119
+ CHEF_CLIENT="${!chef_client_variable_name}"
120
+ fi
121
+ fi
122
+
123
+ # Write client key
124
+ if [ -n "${CHEF_CLIENT}" ]; then
125
+ echo -e "${CHEF_CLIENT}" >"${PWD%/}/.chef/${CHEF_USER}.pem"
126
+ fi
127
+
128
+ # Configure knife
129
+ [ -d "${PWD%/}/.chef" ] && rm -rf "${PWD%/}/.chef"
130
+ mkdir "${PWD%/}/.chef" || exit $?
131
+ cat >"${PWD%/}/.chef/knife.rb" <<EOF
132
+ current_dir = File.dirname(__FILE__)
133
+
134
+ log_level :info
135
+ log_location STDOUT
136
+
137
+ node_name '${CHEF_USER}'
138
+ client_key "#{current_dir}/${CHEF_USER}.pem"
139
+ chef_server_url '${CHEF_SERVER}'
140
+
141
+ knife[:ssh_user] = '${CHEF_USER}'
142
+ EOF
143
+ }
144
+
82
145
  if [ -n "${1}" -a "${1}" = "prepare" ]; then
83
146
  load_ssh_key
84
147
  exit $?
data/travis-chef.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = 'travis-chef'
5
- gem.version = '0.0.5'
5
+ gem.version = '0.0.6'
6
6
  gem.authors = ['Matt Kasa']
7
7
  gem.email = ['mattk@granicus.com']
8
8
  gem.description = 'Script to automate Chef deployments from Travis'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: travis-chef
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Kasa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-07 00:00:00.000000000 Z
11
+ date: 2016-05-28 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Script to automate Chef deployments from Travis
14
14
  email:
@@ -48,7 +48,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
48
48
  version: '0'
49
49
  requirements: []
50
50
  rubyforge_project:
51
- rubygems_version: 2.2.1
51
+ rubygems_version: 2.4.8
52
52
  signing_key:
53
53
  specification_version: 4
54
54
  summary: Travis/Chef deployment script