travis-chef 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
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