knife-proxmox 0.0.15 → 0.0.16
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.
- data/README +33 -3
- data/lib/chef/knife/proxmox_base.rb +13 -3
- data/lib/chef/knife/proxmox_server_destroy.rb +9 -4
- data/lib/knife-proxmox/version.rb +1 -1
- metadata +2 -2
data/README
CHANGED
@@ -30,8 +30,31 @@ Id Node Name Type Status
|
|
30
30
|
202 node-2 chef-client1 openvz down
|
31
31
|
|
32
32
|
Get info for a server
|
33
|
-
$ knife proxmox server info -H tetatet.example.com -
|
34
|
-
|
33
|
+
$ knife proxmox server info -H tetatet.example.com -P ip
|
34
|
+
192.168.1.1
|
35
|
+
|
36
|
+
$ knife proxmox server info -H tetatet.example.com
|
37
|
+
knife proxmox server info -H tetatet.example.com -P ip
|
38
|
+
cpu: 0.00281876923420022
|
39
|
+
cpus: 2
|
40
|
+
disk: 5833015296
|
41
|
+
diskread: 316895232
|
42
|
+
diskwrite: 3805184
|
43
|
+
failcnt: 0
|
44
|
+
ha: 0
|
45
|
+
ip: 192.168.42.200
|
46
|
+
maxdisk: 8589934592
|
47
|
+
maxmem: 4294967296
|
48
|
+
maxswap: 536870912
|
49
|
+
mem: 1145778176
|
50
|
+
name: tetatet.example.com
|
51
|
+
netin: 27888604
|
52
|
+
netout: 2829601
|
53
|
+
nproc: 140
|
54
|
+
status: running
|
55
|
+
swap: 54460416
|
56
|
+
type: openvz
|
57
|
+
uptime: 61018
|
35
58
|
|
36
59
|
|
37
60
|
List templates installed
|
@@ -56,7 +79,8 @@ debian-6-turnkey-tomcat-apache_12.0-1_i386.tar.gz debian-6
|
|
56
79
|
debian-6.0-wordpress_3.4.2-1_i386.tar.gz debian-6.0 .....
|
57
80
|
|
58
81
|
|
59
|
-
Create a server
|
82
|
+
Create a server (read the note at the end of the document. It's about obtaining the IPAddress)
|
83
|
+
|
60
84
|
$ knife proxmox server create -n ankh -r "recipe[java]" -C 2 -M 1024 -H example-server -P test123 -T 4
|
61
85
|
Creating VM 473...
|
62
86
|
..............OK
|
@@ -131,3 +155,9 @@ If you want to alter some variable by command line then you can use the followin
|
|
131
155
|
-u --username <user> Same for user
|
132
156
|
-p --password <pass> Same for password
|
133
157
|
-r --realm <realm> Same for the realm used to authenticate
|
158
|
+
|
159
|
+
ABOUT CHEF AND PROXMOX
|
160
|
+
|
161
|
+
To bootstrap a newly created VM, you should apply the patch inside the extra directory. Otherwise you must
|
162
|
+
specify the IP address in the knife proxmox server create --ipaddress argument.
|
163
|
+
|
@@ -19,6 +19,9 @@ class Chef
|
|
19
19
|
require 'net/ssh/multi'
|
20
20
|
require 'chef/api_client'
|
21
21
|
require 'chef/node'
|
22
|
+
require 'readline'
|
23
|
+
require 'chef/knife/bootstrap'
|
24
|
+
Chef::Knife::Bootstrap.load_deps
|
22
25
|
end
|
23
26
|
|
24
27
|
# options
|
@@ -106,7 +109,7 @@ class Chef
|
|
106
109
|
data.each {|entry|
|
107
110
|
vmids.add entry['vmid']
|
108
111
|
}
|
109
|
-
(vmids.max + 1).to_s
|
112
|
+
(vmids.empty? ? 100 : (vmids.max + 1)).to_s
|
110
113
|
end
|
111
114
|
end
|
112
115
|
|
@@ -141,13 +144,17 @@ class Chef
|
|
141
144
|
end
|
142
145
|
end
|
143
146
|
|
144
|
-
# vmid_to_node: Specify the vmid and get the node in which is
|
147
|
+
# vmid_to_node: Specify the vmid and get the node in which is. nil otherwise
|
145
148
|
def vmid_to_node(vmid)
|
149
|
+
node = nil
|
146
150
|
@connection['cluster/resources?type=vm'].get @auth_params do |response, request, result, &block|
|
147
151
|
data = JSON.parse(response.body)['data']
|
148
152
|
data.each {|entry|
|
149
|
-
|
153
|
+
if entry['vmid'].to_s.match(vmid.to_s) then
|
154
|
+
node = entry['node']
|
155
|
+
end
|
150
156
|
}
|
157
|
+
return node
|
151
158
|
end
|
152
159
|
end
|
153
160
|
|
@@ -201,6 +208,9 @@ class Chef
|
|
201
208
|
# take the response and extract the taskid
|
202
209
|
action_response("server stop",response)
|
203
210
|
end
|
211
|
+
rescue Exception => e
|
212
|
+
ui.warn("The VMID does not match any node")
|
213
|
+
exit 1
|
204
214
|
end
|
205
215
|
|
206
216
|
def server_create(vmid,vm_definition)
|
@@ -43,10 +43,15 @@ class Chef
|
|
43
43
|
vm_id = config[:vm_id]
|
44
44
|
end
|
45
45
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
46
|
+
begin
|
47
|
+
server_stop(vm_id)
|
48
|
+
ui.msg("Preparing the server to delete")
|
49
|
+
sleep(5)
|
50
|
+
server_destroy(vm_id)
|
51
|
+
rescue Exception => e
|
52
|
+
ui.warn("Error trying to destroy the server. Does the server exists?")
|
53
|
+
exit 1
|
54
|
+
end
|
50
55
|
|
51
56
|
#TODO: remove server from chef
|
52
57
|
if config[:purge]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-proxmox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-03-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: chef
|