今天遇到需要使用 OpenStack 的 Keystone 来管理用户的需求,于是就准备装一个本地的方便调试,过程不可谓不蛋疼(因为我比较懒,所以我直接记录成功的步骤)。同时证明了选择使用 Vagrant 来安装的绝对正确性!!!

我先用 Vagrant 装了一个 Ubuntu 14.04 的 Box,因为不懂哪个好,所以选了个下载次数最多的(先安装 VirtualBox):

$ vagrant init ubuntu/trusty64; vagrant up --provider virtualbox

下载需要点时间,接着需要改 VM 的配置,需要指定一个 IP,并且默认的安装时会内存不够直接嗝屁:

$ vim Vagrantfile
  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  config.vm.network "private_network", ip: "192.168.33.10"

  ...

  config.vm.provider "virtualbox" do |vb|
  #   # Display the VirtualBox GUI when booting the machine
  #   vb.gui = true
  #
  #   # Customize the amount of memory on the VM:
    vb.memory = "4096"
    vb.cpus = 2
  end

重载配置然后进入 VM:

$ vagrant reload && vagrant ssh

首先,随意目录克隆 DevStack 仓库:

$ git clone https://git.openstack.org/openstack-dev/devstack

因为 DevStack 不允许用 root 用户运行,而且不是 root 的这个用户还必须可以 sudo,所以一般都会说创建一个叫 stack 的用户。然而 Vagrant 进入就是 vagrant 用户,所以完整不用考虑这个问题。直接开干!

$ cd devstack
$ ./stack.sh

期间会要求你输入管理员的密码之类的。

然后就是漫长的等待,看见无数的字符在飞速滚动,我竟然有一种手抖装了百度全家桶的错觉。

言归正传,中途可能会出现一个非常傻逼的错误:

cp: cannot create regular file `/etc/glance/policy.json': Permission

没错,这个时候你会非常机智的使用 sudo ./stack.sh,然而,脚本会更傻逼地说,不好意思,你不能用 root 运行(那你倒是他妈的用 sudo 啊!)。

卧槽!!!!怎么办?

  • 解决方案 A:手动帮它复制:sudo cp -p /opt/stack/glance/etc/policy.json /etc/glance/policy.json
  • 解决方案 B:删除已存在的相关文件:sudo rm -rf /etc/

完了继续等待,大概半个小时后,一切安装完毕,访问 http://192.168.33.10