如何在 Vagrant-Openstack 插件中获取新创建的机器详细信息
How to get newly created machine details in Vagrant-Openstack plugin
我使用 Vagrant 和 Openstack 作为我的供应商。我可以使用我的 Vagrant 脚本成功创建 create openstack 实例。我正在使用
os.floating_ip = :auto
为我的机器分配浮动 IP 地址。创建后如何在同一个 Vagrant 脚本中获取新创建的机器信息。这里我想获取已经自动分配给那台机器的浮动IP地址。
以下是我的脚本
Vagrant.configure("2") do |config|
config.vm.box = "dummy"
config.vm.synced_folder '.', '/vagrant', disabled: true
config.ssh.private_key_path = "/home/xxxxx"
config.vm.provider :openstack do |os|
os.username = "xxx"
os.api_key = "xxx"
os.flavor = "m1.medium"
os.image = "ubuntu14.04"
os.endpoint = "http://xxx"
os.keypair_name = "xxx"
os.floating_ip = :auto
os.floating_ip_pool = "xxx"
os.ssh_username = "ubuntu"
os.network = "xxx"
os.server_name = "TestInstant"
end
end
我猜你的意思是从主机获取信息所以最简单的可能是 运行 vagrant ssh-config
,这给你 ssh 相关信息包括主机名:
Host default
HostName 172.16.42.206
如果你想在启动机器时获取这些信息,你可以添加一个shell provisioner:
config.vm.provision "shell", inline: "hostname", run: "always"
config.vm.provision "shell", inline: "ip addr show", run: "always"
你会得到那些信息
==> default: Running provisioner: shell...
default: Running: inline script
==> default: stdin: is not a tty
==> default: precise32
==> default: Running provisioner: shell...
default: Running: inline script
==> default: stdin: is not a tty
==> default: 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
==> default: link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
==> default: inet 127.0.0.1/8 scope host lo
==> default: inet6 ::1/128 scope host
==> default: valid_lft forever preferred_lft forever
==> default: 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
==> default: link/ether 08:00:27:12:96:98 brd ff:ff:ff:ff:ff:ff
==> default: inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
==> default: inet6 fe80::a00:27ff:fe12:9698/64 scope link
==> default: valid_lft forever preferred_lft forever
显然,您可以运行简单命令或运行脚本(read more on shell provisioner if needed)来获取您需要的信息
我使用 Vagrant 和 Openstack 作为我的供应商。我可以使用我的 Vagrant 脚本成功创建 create openstack 实例。我正在使用
os.floating_ip = :auto
为我的机器分配浮动 IP 地址。创建后如何在同一个 Vagrant 脚本中获取新创建的机器信息。这里我想获取已经自动分配给那台机器的浮动IP地址。
以下是我的脚本
Vagrant.configure("2") do |config|
config.vm.box = "dummy"
config.vm.synced_folder '.', '/vagrant', disabled: true
config.ssh.private_key_path = "/home/xxxxx"
config.vm.provider :openstack do |os|
os.username = "xxx"
os.api_key = "xxx"
os.flavor = "m1.medium"
os.image = "ubuntu14.04"
os.endpoint = "http://xxx"
os.keypair_name = "xxx"
os.floating_ip = :auto
os.floating_ip_pool = "xxx"
os.ssh_username = "ubuntu"
os.network = "xxx"
os.server_name = "TestInstant"
end
end
我猜你的意思是从主机获取信息所以最简单的可能是 运行 vagrant ssh-config
,这给你 ssh 相关信息包括主机名:
Host default
HostName 172.16.42.206
如果你想在启动机器时获取这些信息,你可以添加一个shell provisioner:
config.vm.provision "shell", inline: "hostname", run: "always"
config.vm.provision "shell", inline: "ip addr show", run: "always"
你会得到那些信息
==> default: Running provisioner: shell...
default: Running: inline script
==> default: stdin: is not a tty
==> default: precise32
==> default: Running provisioner: shell...
default: Running: inline script
==> default: stdin: is not a tty
==> default: 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
==> default: link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
==> default: inet 127.0.0.1/8 scope host lo
==> default: inet6 ::1/128 scope host
==> default: valid_lft forever preferred_lft forever
==> default: 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
==> default: link/ether 08:00:27:12:96:98 brd ff:ff:ff:ff:ff:ff
==> default: inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
==> default: inet6 fe80::a00:27ff:fe12:9698/64 scope link
==> default: valid_lft forever preferred_lft forever
显然,您可以运行简单命令或运行脚本(read more on shell provisioner if needed)来获取您需要的信息