如何在Vagrant-Openstack插件

时间:2015-09-15 04:46:34

标签: vagrant openstack vagrant-plugin

我使用Vagrant和Openstack作为我的提供者。我可以使用我的Vagrant脚本创建成功创建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

1 个答案:

答案 0 :(得分:1)

我想你的意思是从主机获取信息所以最简单的可能就是运行vagrant ssh-config,这会为你提供ssh相关信息,包括主机名:

Host default
  HostName 172.16.42.206

如果要在启动计算机时获取此信息,可以添加shell配置程序:

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)来获取所需信息