0. 写在前面
我在成功安装这个之前,真的阅读过很多博客,我一开始觉得安装很简单,不过是把那些东西复制到命令行执行一遍就好了,但我实在是没想到失败的次数让我无语,没能执行成功的各种错误查也查不到,所以我写这篇东西,第一是帮我自己巩固成功的安装过程,第二是为了看到这篇文章的同学能一次成功,不要耽误太多时间。
1. 环境准备
新创建1台虚拟机,新配置2张网卡,一共3张网卡,作为all in one节点。操作系统为centos7.4。
三张网卡,首先我要解释一下:
虚拟机应该和主机共用一个网络,你可以选择自动桥接,这样比较方便,这样选择后的虚拟机可以直接上网的。
你还需配置两个网络:
第一,配一个环回网卡,网段自己设置,我设置的是10.99.0.200,网关255.255.255.0。这样在虚拟机里桥接第一个网络设置固定ip地址可以随意设置这个网段下的任意网络,比如,我设置的是:10.99.0.7。
这个网卡的作用是作为horizon dashboard的登陆地址,之后你部署完了之后应该可以用horizon界面登陆,这样配置的话,在浏览器打上10.99.0.7,horizon界面就会出来了。
第二,继续添加一个环回网卡,网段自己设置,我设置的是192.168.0.200,网关255.255.255.0。这样在虚拟机里桥接第一个网络设置固定ip地址可以随意设置这个网段下的任意网络,比如,我设置的是:192.168.0.7。
这个网卡的作用是neutron的作为网络接口,网上的有些博客没说清楚之前,我以为配一个环回网卡的地址就可以了,但是问题在于,如果10.99.0.7这个网络作为horizon接口,没有192.168.0.7这个网络的话,那么neutron的接口就必须设置你自动桥接的网卡地址,这样一来,就会出现很严重的问题,上不了网。因为neutron占用了这个ip地址,上不了网的话对于整个部署是没有意义的。
1)关闭Selinux
vi /etc/sysconfig/selinux
SELINUX=disabled
注意你可以setenforce 1的方式暂时关闭selinux,上面的命令在重启以后才生效,但是如果你想不重启继续下面的操作可以执行setenforce 1这样的命令来操作,但我有强迫症,所以还是重启了。
2)关闭firewalld
systemctl stop firewalld
systemctl disable firewalld
2. 安装 docker
1)添加Docker源
cd /etc/yum.repos.d/
vi docker.repo
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
2)添加epel源
vi epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://mirrors.aliyun.com/epel/7/$basearch
http://mirrors.aliyuncs.com/epel/7/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
3)安装Docker 1.12.6
yum install docker-engine-1.12.6 docker-engine-selinux-1.12.6 -y1
4)设置Docker
mkdir /etc/systemd/system/docker.service.d
vi /etc/systemd/system/docker.service.d/kolla.conf
[Service]
MountFlags=shared
5)重启相关服务
systemctl daemon-reload
systemctl enable docker
systemctl restart docker
6)配置阿里云的Docker加速器,加快pull registry镜像
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://a5aghnme.mirror.aliyuncs.com"]
}
EOF
重启下服务
systemctl daemon-reload && systemctl restart docker
7)设置代理(如果需要)
创建配置文件/etc/systemd/system/docker.service.d/http-proxy.conf,添加如下配置:
[Service]
Environment="HTTP_PROXY=http://ip:port/"
Environment="HTTPS_PROXY=http://ip:port/"
重启服务
systemctl daemon-reload && systemctl restart docker
3.安装 kolla
1)安装 pip
yum install python-pip
pip install -U pip -i https://pypi.tuna.tsinghua.edu.cn/simple
2)安装基础软件
yum install python-devel libffi-devel gcc openssl-devel libselinux-python
3)安装 ansible
pip install -U ansible -i https://pypi.tuna.tsinghua.edu.cn/simple
4)安装 kolla-ansible
pip install -U kolla-ansible -i https://pypi.tuna.tsinghua.edu.cn/simple
5)复制相关配置文件
cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/
cp /usr/share/kolla-ansible/ansible/inventory/* /home/
6)生成密码文件
kolla-genpwd
7)编辑 /etc/kolla/passwords.yml文件,配置keystone管理员用户的密码。
keystone_admin_password: admin
同时,也是登录Dashboard,admin使用的密码,你可以根据自己需要进行修改。
8)编辑 /etc/kolla/globals.yml 配置文件
kolla_internal_vip_address: "10.99.0.7" //访问Dashboard的地址
openstack_release: "queens"
network_interface: "ens33" //就是10.99.0.7的网卡名字
neutron_external_interface: "ens34" //就是192.168.0.7的网卡名字,用于neutron的网络接口
enable_haproxy: "no"
9)部署前检查
注意,部署前检查应该在/etc/hosts文件中添加10.99.0.7 localhost的DNS。这个很重要!很重要!没有绝对出错!
kolla-ansible prechecks -i /home/all-in-one
10)先拉取镜像
注意,这里,实话来讲,其实拉镜像还是比较慢的,所以有的时候,要科学上网,但是科学上网有的时候也会导致拉取失败。我就具体讲一下怎么搞会快一点。
首先,你需要科学上网。
yum install git
git clone -b manyuser https://github.com/Ssrbackup/shadowsocksr.git
gedit /etc/shadowsocks.json
//然后把你的ssr的JSON配置填进去
cd shadowsocksr/shadowsocks/
python local.py -c/etc/shadowsocks.json -d start //开始ssr服务
//下面是一些备用的命令:
python local.py -c/etc/shadowsocks.json -d stop//结束ssr服务
python local.py -c/etc/shadowsocks.json -d restart //开始ssr服务
现在,你需要设置proxychains让你的科学上网能够在终端实现:
cd //回到主目录
yum -y install gcc automake autoconf libtool make //安装make环境
git clone https://github.com/rofl0r/proxychains-ng.git //下载proxychains4
cd proxychains-ng
./configure //生产配置文件
make && sudo make install //编译安装
cp ./src/proxychains.conf /etc/proxychains.conf //提取配置文件
cd .. && rm -rf proxychains-ng //清理安装包
vim /etc/proxychains.conf //编辑配置文件
//最后一行改成sock5 127.0.0.1:1080
这样,以后执行命令的时候在前面加上proxychains4就科学上网了。
kolla-ansible pull -i /home/all-in-one
//或者试一下科学上网
proxychains4 kolla-ansible pull -i /home/all-in-one
然后如果还不行的话,可以试试手动从镜像网站拉下来你所需要的镜像,最后再执行上面的命令,就可以减少他的拉取镜像的个数。
proxychains4 docker pull kolla/centos-source-fluentd:queens
proxychains4 docker pull kolla/centos-source-prometheus-base:queens
proxychains4 docker pull kolla/centos-source-prometheus-haproxy-exporter:queens
proxychains4 docker pull kolla/centos-source-haproxy:queens
proxychains4 docker pull kolla/centos-source-chrony:queens
proxychains4 docker pull kolla/centos-source-openvswitch-vswitchd:queens
proxychains4 docker pull kolla/centos-source-openvswitch-base:queens
proxychains4 docker pull kolla/centos-source-openvswitch-db-server:queens
proxychains4 docker pull kolla/centos-source-openstack-base:queens
proxychains4 docker pull kolla/centos-source-glance-base:queens
proxychains4 docker pull kolla/centos-source-mariadb:queens
proxychains4 docker pull kolla/centos-source-memcached:queens
proxychains4 docker pull kolla/centos-source-keystone-ssh:queens
proxychains4 docker pull kolla/centos-source-keystone-base:queens
proxychains4 docker pull kolla/centos-source-kolla-toolbox:queens
proxychains4 docker pull kolla/centos-source-heat-api:queens
proxychains4 docker pull kolla/centos-source-heat-api-cfn:queens
proxychains4 docker pull kolla/centos-source-glance-api:queens
proxychains4 docker pull kolla/centos-source-keystone-fernet:queens
proxychains4 docker pull kolla/centos-source-nova-libvirt:queens
proxychains4 docker pull kolla/centos-source-neutron-lbaas-agent:queens
proxychains4 docker pull kolla/centos-source-neutron-l3-agent:queens
proxychains4 docker pull kolla/centos-source-keepalived:queens
proxychains4 docker pull kolla/centos-source-nova-compute:queens
proxychains4 docker pull kolla/centos-source-nova-spicehtml5proxy:queens
proxychains4 docker pull kolla/centos-source-nova-api:queens
proxychains4 docker pull kolla/centos-source-nova-novncproxy:queens
proxychains4 docker pull kolla/centos-source-nova-ssh:queens
proxychains4 docker pull kolla/centos-source-nova-placement:queens
proxychains4 docker pull kolla/centos-source-nova-compute-ironic:queens
proxychains4 docker pull kolla/centos-source-horizon:queens
proxychains4 docker pull kolla/centos-binary-nova-conductor:queens
proxychains4 docker pull kolla/centos-binary-nova-consoleauth:queens
proxychains4 docker pull kolla/centos-binary-nova-serialproxy:queens
proxychains4 docker pull kolla/centos-binary-nova-mksproxy:queens
proxychains4 docker pull kolla/centos-binary-nova-scheduler:queens
proxychains4 docker pull kolla/centos-binary-nova-base:queens
proxychains4 docker pull kolla/centos-binary-neutron-server-opendaylight:queens
proxychains4 docker pull kolla/centos-binary-neutron-server:queens
proxychains4 docker pull kolla/centos-binary-neutron-metering-agent:queens
proxychains4 docker pull kolla/centos-binary-ce-neutron-metadata-agent :queens
proxychains4 docker pull kolla/centos-binary-neutron-sriov-agent:queens
proxychains4 docker pull kolla/centos-binary-ironic-neutron-agent:queens
proxychains4 docker pull kolla/centos-binary-neutron-bgp-dragent:queens
proxychains4 docker pull kolla/centos-binary-neutron-sfc-agent:queens
proxychains4 docker pull kolla/centos-binary-neutron-openvswitch-agent:queens
proxychains4 docker pull kolla/centos-binary-neutron-dhcp-agent:queens
proxychains4 docker pull kolla/centos-binary-keystone:queens
proxychains4 docker pull kolla/centos-binary-neutron-linuxbridge-agent:queens
proxychains4 docker pull kolla/centos-binary-fluentd:queens
proxychains4 docker pull kolla/centos-binary-prometheus-haproxy-exporter:queens
proxychains4 docker pull kolla/centos-binary-haproxy:queens
proxychains4 docker pull kolla/centos-binary-chrony:queens
proxychains4 docker pull kolla/centos-binary-openvswitch-vswitchd:queens
proxychains4 docker pull kolla/centos-binary-openvswitch-base:queens
proxychains4 docker pull kolla/centos-binary-openvswitch-db-server:queens
proxychains4 docker pull kolla/centos-binary-openstack-base:queens
proxychains4 docker pull kolla/centos-binary-glance-base:queens
proxychains4 docker pull kolla/centos-binary-mariadb:queens
proxychains4 docker pull kolla/centos-binary-memcached:queens
proxychains4 docker pull kolla/centos-binary-keystone-ssh:queens
proxychains4 docker pull kolla/centos-binary-keystone-base:queens
proxychains4 docker pull kolla/centos-binary-kolla-toolbox:queens
proxychains4 docker pull kolla/centos-binary-heat-all:queens
proxychains4 docker pull kolla/centos-binary-heat-api:queens
proxychains4 docker pull kolla/centos-binary-heat-api-cfn:queens
proxychains4 docker pull kolla/centos-binary-glance-api:queens
proxychains4 docker pull kolla/centos-binary-fluentd:queens
proxychains4 docker pull kolla/centos-binary-keystone-fernet:queens
proxychains4 docker pull kolla/centos-binary-nova-libvirt:queens
proxychains4 docker pull kolla/centos-binary-neutron-lbaas-agent:queens
proxychains4 docker pull kolla/centos-binary-neutron-l3-agent:queens
proxychains4 docker pull kolla/centos-binary-keepalived:queens
proxychains4 docker pull kolla/centos-binary-nova-compute:queens
proxychains4 docker pull kolla/centos-binary-nova-spicehtml5proxy:queens
proxychains4 docker pull kolla/centos-binary-nova-api:queens
proxychains4 docker pull kolla/centos-binary-nova-novncproxy:queens
proxychains4 docker pull kolla/centos-binary-nova-ssh:queens
proxychains4 docker pull kolla/centos-binary-nova-placement:queens
proxychains4 docker pull kolla/centos-binary-nova-compute-ironic:queens
proxychains4 docker pull kolla/centos-binary-horizon:queens
11)安装 Docker python libraries, 否则会报错
pip install -U docker -i https://pypi.tuna.tsinghua.edu.cn/simple
12)部署
kolla-ansible deploy -i /home/all-in-one
等待大约30分钟,部署完成。
13)登录 dashboard http://10.99.0.7
14)安装客户端
pip install python-openstackclient python-glanceclient python-neutronclient -i https://pypi.tuna.tsinghua.edu.cn/simple
15)执行部署后操作
kolla-ansible postdeploy -i /home/all-in-one