kitchen-lxd_cli 0.1.5 → 0.1.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 +4 -4
- data/README.md +7 -1
- data/lib/kitchen/driver/lxd_cli.rb +25 -4
- data/lib/kitchen/driver/lxd_cli_version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b72ba2a22edb8adb3ee21e394eb133b532270a33
|
|
4
|
+
data.tar.gz: e758ef7199090d29672a0715b064bedcb6fe578e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1bc3eef0b7531b1fafe449d87618ee64015e8e184dbf194d23c2b8914c9f9a4ed5197c490aca7d27b9bf628d8dbb28e40db49b4505e320035643ec7c2806690f
|
|
7
|
+
data.tar.gz: b12cc296130ace2e4f5f55553da219972e8d3d70c0802007b4747efa55c8f3e8706598ec561c613ac1ef435282110be084d7dd6522302d6ba013e82112ad2f6f
|
data/README.md
CHANGED
|
@@ -75,12 +75,12 @@ driver:
|
|
|
75
75
|
ipv4: 10.0.3.99/24
|
|
76
76
|
ip_gateway: 10.0.3.1
|
|
77
77
|
verifier_path: "/opt/verifier"
|
|
78
|
-
stop_instead_of_destroy: true
|
|
79
78
|
publish_image_name: "kitchen-base-ubuntu-1404"
|
|
80
79
|
use_publish_image: true
|
|
81
80
|
publish_image_before_destroy: true
|
|
82
81
|
publish_image_overwrite: true
|
|
83
82
|
enable_wait_for_ssh_login: false
|
|
83
|
+
username: kitchen-user
|
|
84
84
|
|
|
85
85
|
|
|
86
86
|
|
|
@@ -363,6 +363,12 @@ Default is false. If set to true container will loop until it can login to ssh,
|
|
|
363
363
|
|
|
364
364
|
NOTE: Hope is that I can resolve the issues of needing to wait by writing a transport that uses lxc commands and not ssh, also will improve sped since ssh login is slow.
|
|
365
365
|
|
|
366
|
+
### username
|
|
367
|
+
|
|
368
|
+
Default is `root`. If set to another user name will create home directory and set to `${username} ALL=(ALL) NOPASSWD: ALL` on `/etc/sudoers`.
|
|
369
|
+
|
|
370
|
+
`username: kitchen-user`
|
|
371
|
+
|
|
366
372
|
### <a name="config-require-chef-omnibus"></a> require\_chef\_omnibus
|
|
367
373
|
|
|
368
374
|
Determines whether or not a Chef [Omnibus package][chef_omnibus_dl] will be
|
|
@@ -39,6 +39,7 @@ module Kitchen
|
|
|
39
39
|
default_config :never_destroy, false
|
|
40
40
|
default_config :lxd_proxy_path, "#{ENV['HOME']}/.lxd_proxy"
|
|
41
41
|
default_config :lxd_proxy_update, false
|
|
42
|
+
default_config :username, "root"
|
|
42
43
|
|
|
43
44
|
required_config :public_key_path
|
|
44
45
|
|
|
@@ -57,6 +58,7 @@ module Kitchen
|
|
|
57
58
|
configure_dns
|
|
58
59
|
lxc_ip = wait_for_ip_address
|
|
59
60
|
state[:hostname] = lxc_ip
|
|
61
|
+
state[:username] = config[:username]
|
|
60
62
|
setup_ssh_access
|
|
61
63
|
wait_for_ssh_login(lxc_ip) if config[:enable_wait_for_ssh_login] == "true"
|
|
62
64
|
IO.popen("lxc exec #{instance.name} bash", "r+") do |p|
|
|
@@ -286,11 +288,22 @@ module Kitchen
|
|
|
286
288
|
|
|
287
289
|
def setup_ssh_access
|
|
288
290
|
info("Setting up public key #{config[:public_key_path]} on #{instance.name}")
|
|
289
|
-
|
|
291
|
+
unless config[:username] == "root"
|
|
292
|
+
create_ssh_user
|
|
293
|
+
info("Checking /home/#{config[:username]}/.ssh on #{instance.name}")
|
|
294
|
+
wait_for_path("/home/#{config[:username]}/.ssh")
|
|
295
|
+
else
|
|
296
|
+
info("Check /#{config[:username]}/.ssh on #{instance.name}")
|
|
297
|
+
wait_for_path("/#{config[:username]}/.ssh")
|
|
298
|
+
end
|
|
290
299
|
|
|
291
300
|
begin
|
|
292
301
|
debug("Uploading public key...")
|
|
293
|
-
|
|
302
|
+
unless config[:username] == "root"
|
|
303
|
+
`lxc file push #{config[:public_key_path]} #{instance.name}/home/#{config[:username]}/.ssh/authorized_keys 2> /dev/null`
|
|
304
|
+
else
|
|
305
|
+
`lxc file push #{config[:public_key_path]} #{instance.name}/#{config[:username]}/.ssh/authorized_keys 2> /dev/null`
|
|
306
|
+
end
|
|
294
307
|
break if $?.to_i == 0
|
|
295
308
|
sleep 0.3
|
|
296
309
|
end while true
|
|
@@ -298,6 +311,14 @@ module Kitchen
|
|
|
298
311
|
debug("Finished Copying public key from #{config[:public_key_path]} to #{instance.name}")
|
|
299
312
|
end
|
|
300
313
|
|
|
314
|
+
def create_ssh_user
|
|
315
|
+
info("Create user #{config[:username]} on #{instance.name}")
|
|
316
|
+
`lxc exec #{instance.name} -- useradd -m -G sudo #{config[:username]} -s /bin/bash`
|
|
317
|
+
`lxc exec #{instance.name} -- mkdir /home/#{config[:username]}/.ssh`
|
|
318
|
+
`lxc exec #{instance.name} -- chown #{config[:username]}:#{config[:username]} /home/#{config[:username]}/.ssh`
|
|
319
|
+
`lxc exec #{instance.name} -- sh -c "echo '#{config[:username]} ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers"`
|
|
320
|
+
end
|
|
321
|
+
|
|
301
322
|
def install_proxy
|
|
302
323
|
IO.popen("bash", "w") do |p|
|
|
303
324
|
if config[:lxd_proxy_verify] == true
|
|
@@ -364,11 +385,11 @@ module Kitchen
|
|
|
364
385
|
def wait_for_ssh_login(ip)
|
|
365
386
|
begin
|
|
366
387
|
debug("Trying to login into #{ip} via SSH...")
|
|
367
|
-
`ssh
|
|
388
|
+
`ssh #{config[:username]}@#{ip} -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no 'true' > /dev/null 2>&1`
|
|
368
389
|
break if $?.to_i == 0
|
|
369
390
|
sleep 0.3
|
|
370
391
|
end while true
|
|
371
|
-
debug("SSH is up, able to login at
|
|
392
|
+
debug("SSH is up, able to login at #{config[:username]}@#{ip}")
|
|
372
393
|
end
|
|
373
394
|
|
|
374
395
|
def run_lxc_command(cmd)
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kitchen-lxd_cli
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Braden Wright
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-
|
|
11
|
+
date: 2015-12-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: test-kitchen
|