Openstack 环境部署并创建Centos 7 虚拟机教程
系统要求ubuntu 16.04一定要注意使用ubuntu 16.04系统,其他系统会出现各种莫名其妙的不兼容问题。。。更换apt源修改/etc/apt/sources.lis t文件,改成阿里云deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiversedeb http://mir...
系统要求
ubuntu 16.04
一定要注意使用ubuntu 16.04系统,其他系统会出现各种莫名其妙的不兼容问题。。。
另外,磁盘存储空间尽量大些!!!否则,随便生成几个实例就没空间。
更换apt源
修改/etc/apt/sources.lis t文件,改成阿里云
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
更新apt-get update
安装python2.7以及pip
apt-get install python python-pip
修改【超级用户】的 pip源:
sudo -i #进入超级用户
vim ~/.pip/pip.conf
内容如下:
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = https://mirrors.aliyun.com/pypi/simple/
安装proxychains设置代理
安装的中途,openstack需要去亚马逊下载若干个安装包,考虑到可能需要fq ,现在设置好全局代理来。
安装proxychains
apt-get install proxychains
修改proxychains的脚本源码,因为这个版本的会报错:
vim /usr/bin/proxychains
把export LD_PRELOAD=libproxychains.so.3
改成 export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libproxychains.so.3
开启socks5代理端口
使用ssh或ss客户端开启一个可以fq的代理端口。
例如,如果你有一个主机的ss客户端的本地代理端口为 ip: 1080,那么这个1080也可以被用来作为proxychains的代理端口。
当然,你也可以使用ssh隧道来实现这一点,假设你有一台在【美国】的主机,它的ip为xxx.yyy.zzz.qqq。
那么你可以这样:ssh -D 127.0.0.1:1080 root@xxx.yyy.zzz.qqq
,这样也一样在本机开启一个socks5的本地代理端口。
设置proxychains的配置文件
vim /etc/proxychains.conf
把DNS代理关掉
同时设置socks5的代理端口
后面跟的就是你的socks5 端口的所在的ip和端口信息。
拉取devstack代码
sudo apt-get install git proxychains
proxychains git clone https://git.openstack.org/openstack-dev/devstack -b stable/queens
创建stack账户
sudo devstack/tools/create-stack-user.sh
将devstack目录放到/opt/stack中并设置权限
sudo mv devstack /opt/stack
sudo chown -R stack:stack /opt/stack
切换到stack用户
sudo su - stack
同样的给stack账户也设置阿里云的pip源:
sudo su - stack
mkdir ~/.pip/
vim ~/.pip/pip.conf
把阿里云源贴上去:
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = https://mirrors.aliyun.com/pypi/simple/
编译安装
配置文件
准备配置文件:
sudo su - stack
cd devstack
cp samples/local.conf ./
cp samples/local.sh ./
修改配置文件:
vim local.conf
内容:
- 修改密码:全部改成统一的secret
- 在末尾追加:
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git
安装
OK,安装:
proxychains ./stack.sh
等就完事了,注意如果安装的特别耗时,注意看看pip源和apt源有没有设置正确并生效。
如果不设置阿里云的pip源,安装会巨慢;
如果不设置代理,在安装某些关键包可能失败。
可能的报错
-
安装报错:E: Unable to locate package libsystemd-dev。 方法:使用ubuntu 16.04系统走这个教程。
-
configure: error: *** POSIX caps library not found 。方法:换16.04 系统安装
-
Syntax Error: EOF while scanning triple-quoted string literal 。。。。方法:这个问题,一般是在安装pip包的时候,被用户强行中断pip的下载或安装过程,导致包才下载一半。解决方法是根据日志找出正在安装什么pip包,手动清空pip的缓存,然后再使用pip install xxx安装这个包,然后重新执行
proxychains ./stack.sh
-
df : /mnt/hgfs : Protocol Error,系统中有未正确挂载的hgfs设备,把它卸载掉就行。
sudo umount /mnt/hgfs
-
def _collate(*iterables, key=lambda a: a, reverse=False):
^
SyntaxError: invalid syntax 方法:pip install more_itertools==4.0.0
-
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES) 方法:不使用proxychains 重启一次stack.sh即可。
-
More than one SecurityGroup exists with the name ‘default’ .不用管,这个问题不大。
-
Error: Failed to perform requested operation on instance “vm1”, the instance has an error status: Please try again later [Error: Host ‘ccrfox105’ is not mapped to any cell]. 说主机名没有映射到任何的节点。 解决方法:执行:
nova-manage cell_v2 discover_hosts
设置网络
stack.sh执行完毕后,访问dashboard. http://172.16.30.174/dashboard ,IP是刚刚执行stack.sh的主机地址。
添加私有网络
设置网络名称
设置子网
配置路由
点击网络拓扑,选择public的一个路由器。
添加接口
选择子网
选完以后就OK啦,可以看到public和private连在一起了。
配置安全组
所有的虚拟机的默认安全组在启动的时候都会阻止所有外来的连接。我们需要添加新的安全组。
输入好名称,然后点击“管理规则”,再点击添加规则。
添加四条规则:
所有TCP的出入连接,所有ICMP的出入连接。
添加Centos镜像
去 http://cloud.centos.org/centos/7/images/ 选择一个想要的centos镜像。
我选择的是 CentOS-7-x86_64-GenericCloud-1907.qcow2c ,它是qemu的镜像。
我们想先把镜像下载到本地,然后通过dashboard上传镜像。
创建镜像,填好就行。
等待一段时间,上传完毕后,就可以从镜像中创建实例了。
创建Centos 7 实例
设置个名称
选择创建的镜像源,
也就是刚刚上传的Centos 7.
选择配置
选择所属的网络
选择安全组
选择刚刚设置好的TCP/ICMP全通的安全组。
选择密钥对
在此刻配置密钥对,可以在后面首次登陆的时候直接使用ssh私钥登录,而不用输入密码。
点击创建密钥对,然后选择这个新建的密钥对。在创建的同时,dashboard会主动让你下载好私钥文件xxx.pem,这个就是在ssh登录的时候用的。
OK 创建一波
创建中。。。。
创建完毕:::
可以看到,此时新建立的虚拟机只有私有IP 10.0.0.92 ,需要绑定一个外部可以访问的IP,x
选择动作:绑定浮动IP.
选择外部IP资源池,点击“分配IP”
可以看到,分配了一个172.24.4.5 的外部IP,点击“关联”。
此时,就可以看到刚刚的Centos JM虚拟机有两个IP啦。
对于公有云来说,当外部IP资源池改成他自己的外网IP池的时候,就实现了外网IP的分配了。
登录一波
在执行stack.sh的那个主机,执行ssh登录。
先Ping一下,看网络是否连通:
发现没毛病,ssh登录一波:
发现报错,得用centos用户名登录
再次登录:ssh ceontos@172.24.4.5 -i /home/dk/dk-keys.pem
-i 后面跟的就是刚刚设置的密钥对的私钥文件。
发现登录成功!!!使用ifconfig,可以看到就是Centos JM的私网IP。
参考资料
- Ubuntu16安装OpenStack https://www.jianshu.com/p/d4e91feceb05
- 优雅安装OpenStack https://zhuanlan.zhihu.com/p/28996062
更多推荐
所有评论(0)