abiquo-chef-agent 2.0.10 → 2.0.11
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 +4 -4
- data/Rakefile +10 -0
- data/abiquo-chef-agent.gemspec +1 -1
- data/bin/abiquo-chef-run +1 -1
- data/install/{install-centos.sh → install-centos-6.sh} +2 -2
- data/install/install-centos-7.sh +66 -0
- data/install/install-ubuntu-systemd.sh +1 -1
- data/install/install-ubuntu-upstart.sh +1 -1
- data/lib/abiquo-chef-agent.rb +3 -6
- data/lib/version.rb +5 -0
- data/spec/data/dhclient/dhclient-130c4fe6-30b8-4540-8563-a14e03b683c1-ens3.lease +16 -0
- data/spec/unit/util_spec.rb +2 -2
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd798c59832708256e7e44281b18d8dd1651ebe6
|
4
|
+
data.tar.gz: b3c7d71208b35cde739215e7889f3f61d06f57c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1d0a8216934f8a02febbe5ebc6dbe799c75c9454e0f2378eab3e890ffd604b3f728d9fb5b451007162a1644a86bff6d432a530b4f542556337e739a19ee9dd6
|
7
|
+
data.tar.gz: 2d1f18cacef4dfb0322bb985528c8c1fe23795ff4d5f951cf0ba35a1a87af16a05ebad92ff4efa47bb4a7c8e43c7d36223955454fc82668a6b11230b4e945b0b
|
data/Rakefile
CHANGED
@@ -18,6 +18,16 @@ require './lib/abiquo-chef-agent.rb'
|
|
18
18
|
require 'rdoc/task'
|
19
19
|
require 'rspec/core/rake_task'
|
20
20
|
|
21
|
+
desc "Build gem"
|
22
|
+
task :build do
|
23
|
+
system "gem build abiquo-chef-agent.gemspec"
|
24
|
+
end
|
25
|
+
|
26
|
+
desc "Release to rubygems"
|
27
|
+
task :release => :build do
|
28
|
+
system "gem push abiquo-chef-agent-#{Abiquo::Chef::VERSION}"
|
29
|
+
end
|
30
|
+
|
21
31
|
RSpec::Core::RakeTask.new(:spec)
|
22
32
|
|
23
33
|
Rake::RDocTask.new do |rdoc|
|
data/abiquo-chef-agent.gemspec
CHANGED
data/bin/abiquo-chef-run
CHANGED
@@ -78,7 +78,7 @@ end
|
|
78
78
|
log "Parsing leases file"
|
79
79
|
leases = Util.parse_leases_file
|
80
80
|
if not leases
|
81
|
-
log "Leases file not found or invalid. Current leases search path ['/var/lib/dhcp3', '/var/lib/dhcp', '/var/lib/dhclient'].", :error
|
81
|
+
log "Leases file not found or invalid. Current leases search path ['/var/lib/dhcp3', '/var/lib/dhcp', '/var/lib/dhclient', '/var/lib/NetworkManager'].", :error
|
82
82
|
exit 1
|
83
83
|
else
|
84
84
|
log "Leases found #{leases.inspect}"
|
@@ -14,7 +14,7 @@
|
|
14
14
|
# See the License for the specific language governing permissions and
|
15
15
|
# limitations under the License.
|
16
16
|
|
17
|
-
AGENT_GEM_VERSION=2.0.
|
17
|
+
AGENT_GEM_VERSION=2.0.11
|
18
18
|
|
19
19
|
if [[ ${UID} -ne 0 ]]; then
|
20
20
|
echo "${0} must be run as root"
|
@@ -28,7 +28,7 @@ echo "Installing Chef..."
|
|
28
28
|
curl -L https://www.opscode.com/chef/install.sh | bash
|
29
29
|
|
30
30
|
echo "Installing the Abiquo Chef Agent gem..."
|
31
|
-
/opt/chef/embedded/bin/gem install abiquo-chef-agent -v ${
|
31
|
+
/opt/chef/embedded/bin/gem install abiquo-chef-agent -v ${AGENT_GEM_VERSION}
|
32
32
|
|
33
33
|
ln -s /opt/chef/embedded/bin/abiquo-chef-run /usr/bin
|
34
34
|
cat > /etc/init.d/abiquo-chef-run << 'EOF'
|
@@ -0,0 +1,66 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
# Copyright (C) 2008 Abiquo Holdings S.L.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
AGENT_GEM_VERSION=2.0.11
|
18
|
+
|
19
|
+
if [[ ${UID} -ne 0 ]]; then
|
20
|
+
echo "${0} must be run as root"
|
21
|
+
exit 1
|
22
|
+
fi
|
23
|
+
|
24
|
+
echo "Preparing the system..."
|
25
|
+
yum --assumeyes install ntp gcc-c++ libstdc++-devel
|
26
|
+
|
27
|
+
echo "Installing Chef..."
|
28
|
+
curl -L https://www.opscode.com/chef/install.sh | bash
|
29
|
+
|
30
|
+
echo "Installing the Abiquo Chef Agent gem..."
|
31
|
+
/opt/chef/embedded/bin/gem install abiquo-chef-agent -v ${AGENT_GEM_VERSION}
|
32
|
+
|
33
|
+
ln -s /opt/chef/embedded/bin/abiquo-chef-run /usr/bin
|
34
|
+
cat > /lib/systemd/system/abiquo-chef-agent.service << 'EOF'
|
35
|
+
[Unit]
|
36
|
+
Description=Abiquo Chef Agent
|
37
|
+
After=network.target
|
38
|
+
|
39
|
+
[Service]
|
40
|
+
ExecStart=/usr/bin/abiquo-chef-run
|
41
|
+
|
42
|
+
[Install]
|
43
|
+
WantedBy=multi-user.target
|
44
|
+
EOF
|
45
|
+
|
46
|
+
systemctl enable abiquo-chef-agent
|
47
|
+
|
48
|
+
echo "Configuring DHCP..."
|
49
|
+
read -r -d '' DHCP << 'EOF'
|
50
|
+
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
|
51
|
+
|
52
|
+
send host-name "<hostname>";
|
53
|
+
request subnet-mask, broadcast-address, time-offset, routers,
|
54
|
+
domain-name, domain-name-servers, domain-search, host-name,
|
55
|
+
netbios-name-servers, netbios-scope, interface-mtu,
|
56
|
+
rfc3442-classless-static-routes, ntp-servers, vendor-encapsulated-options;
|
57
|
+
EOF
|
58
|
+
|
59
|
+
echo "${DHCP}" >/etc/dhcp/dhclient.conf
|
60
|
+
|
61
|
+
IFACES=`ip link show | grep ^[0-9]: | grep -iv loopback | cut -d: -f2 | tr -d ' '`
|
62
|
+
for IFACE in ${IFACES}; do
|
63
|
+
echo "${DHCP}" >/etc/dhcp/dhclient-${IFACE}.conf
|
64
|
+
done
|
65
|
+
|
66
|
+
echo "Done!"
|
data/lib/abiquo-chef-agent.rb
CHANGED
@@ -18,9 +18,6 @@ require 'time'
|
|
18
18
|
|
19
19
|
module Abiquo
|
20
20
|
module Chef
|
21
|
-
|
22
|
-
VERSION = '2.0.10'
|
23
|
-
|
24
21
|
class Config
|
25
22
|
def self.chef_config_dir
|
26
23
|
'/etc/chef'
|
@@ -109,11 +106,11 @@ module Abiquo
|
|
109
106
|
#
|
110
107
|
# Tries to find the right leases file
|
111
108
|
#
|
112
|
-
def self.find_leases_file(search_dirs = ['/var/lib/dhcp3', '/var/lib/dhcp', '/var/lib/dhclient'])
|
109
|
+
def self.find_leases_file(search_dirs = ['/var/lib/dhcp3', '/var/lib/dhcp', '/var/lib/dhclient', '/var/lib/NetworkManager'])
|
113
110
|
leases = []
|
114
111
|
search_dirs.each do |d|
|
115
112
|
Dir["#{d}/*"].each do |f|
|
116
|
-
next if f !~ /
|
113
|
+
next if f !~ /lease(s)?$/
|
117
114
|
leases << f
|
118
115
|
end
|
119
116
|
end
|
@@ -132,7 +129,7 @@ module Abiquo
|
|
132
129
|
# :abiquo_api_token => token
|
133
130
|
# }
|
134
131
|
#
|
135
|
-
def self.parse_leases_file(search_dirs = ['/var/lib/dhcp3', '/var/lib/dhcp', '/var/lib/dhclient'])
|
132
|
+
def self.parse_leases_file(search_dirs = ['/var/lib/dhcp3', '/var/lib/dhcp', '/var/lib/dhclient', '/var/lib/NetworkManager'])
|
136
133
|
files = find_leases_file(search_dirs)
|
137
134
|
leases = []
|
138
135
|
files.each do |file|
|
data/lib/version.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
lease {
|
2
|
+
interface "ens3";
|
3
|
+
fixed-address 10.60.13.10;
|
4
|
+
option subnet-mask 255.255.255.0;
|
5
|
+
option routers 10.60.13.1;
|
6
|
+
option dhcp-lease-time 60000;
|
7
|
+
option dhcp-message-type 5;
|
8
|
+
option domain-name-servers 10.60.13.1,8.8.8.8;
|
9
|
+
option dhcp-server-identifier 10.60.20.30;
|
10
|
+
option broadcast-address 10.60.13.255;
|
11
|
+
option vendor-encapsulated-options "http://10.60.20.30:8009/api/cloud/virtualdatacenters/46/virtualappliances/4717/virtualmachines/11851/config/bootstrap@@6Z9u+gUh95DDwTmQbbYKZA==";
|
12
|
+
option domain-name "bcn.abiquo.com.";
|
13
|
+
renew 1 2015/11/30 17:28:04;
|
14
|
+
rebind 2 2015/12/01 00:22:59;
|
15
|
+
expire 2 2015/12/01 02:27:59;
|
16
|
+
}
|
data/spec/unit/util_spec.rb
CHANGED
@@ -27,7 +27,7 @@ describe Util do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
it 'should return latest lease' do
|
30
|
-
expect(@leases[:renew]).to eql(Time.parse('
|
30
|
+
expect(@leases[:renew]).to eql(Time.parse('2015/11/30 17:28:04 +0100'))
|
31
31
|
end
|
32
32
|
|
33
33
|
it 'should have a valid token' do
|
@@ -38,7 +38,7 @@ describe Util do
|
|
38
38
|
|
39
39
|
describe 'find_leases_file' do
|
40
40
|
it 'should find a lease file' do
|
41
|
-
expect(Util.find_leases_file([data_dir + "dhclient/"])).to have(
|
41
|
+
expect(Util.find_leases_file([data_dir + "dhclient/"])).to have(2).item
|
42
42
|
end
|
43
43
|
|
44
44
|
it 'should return an empty list' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: abiquo-chef-agent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Salvador Girones
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2015-11-
|
14
|
+
date: 2015-11-30 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rspec
|
@@ -111,10 +111,12 @@ files:
|
|
111
111
|
- Rakefile
|
112
112
|
- abiquo-chef-agent.gemspec
|
113
113
|
- bin/abiquo-chef-run
|
114
|
-
- install/install-centos.sh
|
114
|
+
- install/install-centos-6.sh
|
115
|
+
- install/install-centos-7.sh
|
115
116
|
- install/install-ubuntu-systemd.sh
|
116
117
|
- install/install-ubuntu-upstart.sh
|
117
118
|
- lib/abiquo-chef-agent.rb
|
119
|
+
- lib/version.rb
|
118
120
|
- spec/data/bootstrap.xml
|
119
121
|
- spec/data/bootstrap_empty_cert.xml
|
120
122
|
- spec/data/bootstrap_empty_chef.xml
|
@@ -129,6 +131,7 @@ files:
|
|
129
131
|
- spec/data/bootstrap_missing_server_url.xml
|
130
132
|
- spec/data/bootstrap_missing_validation.xml
|
131
133
|
- spec/data/bootstrap_no_attributes.xml
|
134
|
+
- spec/data/dhclient/dhclient-130c4fe6-30b8-4540-8563-a14e03b683c1-ens3.lease
|
132
135
|
- spec/data/dhclient/dhclient.leases
|
133
136
|
- spec/data/invalid_bootstrap.xml
|
134
137
|
- spec/spec_helper.rb
|
@@ -174,6 +177,7 @@ test_files:
|
|
174
177
|
- spec/data/bootstrap_missing_server_url.xml
|
175
178
|
- spec/data/bootstrap_missing_validation.xml
|
176
179
|
- spec/data/bootstrap_no_attributes.xml
|
180
|
+
- spec/data/dhclient/dhclient-130c4fe6-30b8-4540-8563-a14e03b683c1-ens3.lease
|
177
181
|
- spec/data/dhclient/dhclient.leases
|
178
182
|
- spec/data/invalid_bootstrap.xml
|
179
183
|
- spec/spec_helper.rb
|