2017-05-30 38 views
0

我想为厨师创建Docker的默认机器。VBoxManage(LockMachine):由厨师创建的Docker机器

我使用命令:

docker-machine create --driver=virtualbox --virtualbox-host-dns-resolver=true default 

我的问题是,当我运行它里面的厨师(与execute资源,但我也试着batchpowershell_script)它运行完全正常(机内加入Docker),但它在VBox内部不起作用(甚至没有创建机器)。

docker-machine ls -t 20 
NAME  ACTIVE DRIVER  STATE  URL SWARM DOCKER ERRORS 
default -  virtualbox Stopped     Unknown 

docker-machine start 
Starting "default"... 
(default) Check network to re-create if needed... 
Error setting up host only network on machine start: C:\Program Files\Oracle\VirtualBox\VBoxManage.exe modifyvm default --nic2 hostonly --nictype2 8240EM --nicpromisc2 deny --hostonlyadapter2 VirtualBox Host-Only Ethernet Adapter --cableconnected2 on failed: 
VBoxManage.exe: error: Code E_FAIL (0x80004005) - Unspecified error (extended info not available) 
VBoxManage.exe: error: Context: "LockMachine(a->session, LockType_Write)" at line 507 of file VBoxManageModifyVM.cpp 

现在我不能删除这台机器,因为有三个VBoxHeadless.exeVBoxNetDHCP.exe过程。

是什么奇怪的,同样的命令通过我的内心cmd运行工程和机器处于启动状态:

docker-machine ls -t 20 
NAME  ACTIVE DRIVER  STATE  URL       SWARM DOCKER  ERRORS 
default -  virtualbox Running tcp://192.168.99.100:2376   v17.05.0-ce 

有什么区别...?为什么Chef不适合?

回答

0

好的,我发现了,问题是什么。

我当时以管理员身份运行Chef,并拥有其他具有普通用户权限的控制台。

主要问题是,当运行docker-machine具有管理员权限时,出现了一些问题,它不是为用户创建的,而是为管理员(甚至在Linux系统上存在问题 - 我已经检查过)。

要解决此问题,您应该在没有管理员权限的情况下运行此execute资源 - 而且我并不真正知道,如何在Chef中执行此操作,但这是一个全新的问题。

+0

请参阅[执行](https://docs.chef.io/resource_execute.html)文档? – Tensibai

+0

我在那里发现'user'和'password'存在 - 但我不想强制用户提供他们的密码......实际上,许多用户根本没有设置密码。我只想'执行'使非UAC进程。 – deem

+0

执行继承厨师的上下文...我没有得到你的总体目标 – Tensibai