---环境
3台虚拟机(vmware),系统ubuntu1804, 3网卡
controller
外网---vm bridged---ens32---192.168.1.11/24
api management---vmnet3---ens36---192.168.101.11/24
vm---vmnet4---ens37---no ip
compute1
外网---vm bridged---ens32---192.168.1.12/24
api management---vmnet3---ens36---192.168.101.12/24
vm---vmnet4---ens37---no ip
compute2
外网---vm bridged---ens32---192.168.1.13/24
api management---vmnet3---ens36---192.168.101.13/24
vm---vmnet4---ens37---no ip
---添加国内apt源
vi /etc/apt/sources.list
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
---更新系统
sudo apt update -y && sudo apt -y dist-upgrade
----/etc/host
192.168.101.11 controller
192.168.101.12 compute1
192.168.101.13 compute2
---安装ntp
apt install chrony -y
controller:
vi /etc/chrony/chrony.conf
allow 192.168.101.0/24
compute:
vi /etc/chrony/chrony.conf
#pool ntp.ubuntu.com iburst maxsources 4
#pool 0.ubuntu.pool.ntp.org iburst maxsources 1
#pool 1.ubuntu.pool.ntp.org iburst maxsources 1
#pool 2.ubuntu.pool.ntp.org iburst maxsources 2
server controller iburst
service chrony restart
systemctl enable chrony
chronyc sources
---下载一些必要的软件
sudo apt install -y chrony git python3-pip openssh-server vsftpd net-tools curl software-properties-common
---clone devstack
git clone http://git.trystack.cn/openstack/devstack -b stable/ussuri
devstack/tools/create-stack-user.sh
mv devstack /opt/stack
chown -R stack:stack /opt/stack/devstack
chown -R stack:stack /opt/stack/
---预先clone必要的组件
controller:
git clone http://git.trystack.cn/openstack/keystone.git /opt/stack/keystone -b stable/ussuri
git clone http://git.trystack.cn/openstack/glance.git /opt/stack/glance -b stable/ussuri
git clone http://git.trystack.cn/openstack/nova.git /opt/stack/nova -b stable/ussuri
git clone http://git.trystack.cn/openstack/neutron.git /opt/stack/neutron -b stable/ussuri
git clone http://git.trystack.cn/openstack/cinder.git /opt/stack/cinder -b stable/ussuri
git clone http://git.trystack.cn/openstack/horizon.git /opt/stack/horizon -b stable/ussuri
git clone http://git.trystack.cn/openstack/requirements.git /opt/stack/requirements -b stable/ussuri
git clone http://git.trystack.cn/openstack/neutron-fwaas.git /opt/stack/neutron-fwaas -b stable/ussuri
git clone http://git.trystack.cn/openstack/neutron-fwaas-dashboard.git /opt/stack/neutron-fwaas-dashboard -b stable/ussuri
git clone http://git.trystack.cn/openstack/octavia.git /opt/stack/octavia -b stable/ussuri
git clone http://git.trystack.cn/openstack/octavia-dashboard.git /opt/stack/octavia-dashboard -b stable/ussuri
git clone http://git.trystack.cn/openstack/barbican.git /opt/stack/barbican -b stable/ussuri
git clone http://git.trystack.cn/openstack/tempest.git /opt/stack/tempest -b master
compute:
git clone http://git.trystack.cn/openstack/nova.git /opt/stack/nova -b stable/ussuri
git clone http://git.trystack.cn/openstack/neutron.git /opt/stack/neutron -b stable/ussuri
git clone http://git.trystack.cn/openstack/requirements.git /opt/stack/requirements -b stable/ussuri
git clone http://git.trystack.cn/openstack/cinder.git /opt/stack/cinder -b stable/ussuri
---pip国内源
stack和root用户都做,但是个人感觉起效的只是root用户
cd
mkdir .pip
vi .pip/pip.conf
[global]
index-url=http://mirrors.aliyun.com/pypi/simple/
trusted-host=mirrors.aliyun.com
---防止安装失败的预备工作(stack用户执行):
sudo pip3 install --upgrade simplejson oslo.i18n===4.0.1 oslo.log===4.1.2 --ignore-installed
sudo virtualenv ../requirements/.venv/
mkdir /opt/stack/.cache
---创建local.conf(stack用户)
cd devstack
vi local.conf
controller文件内容如下
[[local|localrc]]
MULTI_HOST=true
# management & api network
HOST_IP=192.168.101.11
LOGFILE=/opt/stack/logs/stack.sh.log
USE_PYTHON3=True
# Credentials
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=admin
RABBIT_PASSWORD=admin
SERVICE_PASSWORD=admin
SERVICE_TOKEN=admin
# enable neutron-ml2-vlan
disable_service n-net
# Enable LBaaS v2
enable_plugin neutron-lbaas https://opendev.org/openstack/neutron-lbaas stable/stein
enable_plugin neutron-lbaas-dashboard https://opendev.org/openstack/neutron-lbaas-dashboard stable/stein
enable_plugin octavia https://opendev.org/openstack/octavia stable/stein
enable_plugin octavia-dashboard https://opendev.org/openstack/octavia-dashboard.git stable/stein
enable_plugin barbican https://opendev.org/openstack/barbican stable/stein
# enable FWaaS v2
enable_plugin neutron-fwaas https://opendev.org/openstack/neutron-fwaas stable/stein
enable_plugin neutron-fwaas-dashboard https://opendev.org/openstack/neutron-fwaas-dashboard stable/stein
VERBOSE=True
LOG_COLOR=True
# Pre-requisite
ENABLED_SERVICES=rabbit,mysql,key
# Horizon - enable for the OpenStack web GUI
ENABLED_SERVICES+=,horizon
# Nova
ENABLED_SERVICES+=,n-api,n-crt,n-cpu,n-cond,n-sch,n-api-meta,n-sproxy,n-novnc
ENABLED_SERVICES+=,placement-api,placement-client
# Glance
ENABLED_SERVICES+=,g-api,g-reg
# Neutron
ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron,q-lbaasv2,q-vpn,q-fwaas-v2
ENABLED_SERVICES+=,octavia,o-cw,o-hk,o-hm,o-api,o-da
# Cinder
ENABLED_SERVICES+=,c-api,c-vol,c-sch,c-bak
# Tempest
ENABLED_SERVICES+=,tempest
Q_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=3001:4000
PHYSICAL_NETWORK=default
# logging
LOG_COLOR=True
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen
# use TryStack git mirror
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
DOWNLOAD_DEFAULT_IMAGES=False
IMAGE_URLS="https://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img"
compute文件内容如下
[[local|localrc]]
MULTI_HOST=true
# management & api network
HOST_IP=192.168.101.12
USE_PYTHON3=True
VERBOSE=True
# Credentials
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=admin
RABBIT_PASSWORD=admin
SERVICE_PASSWORD=admin
SERVICE_TOKEN=admin
# Service information
SERVICE_HOST=192.168.101.11
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
GLANCE_HOSTPORT=$SERVICE_HOST:9292
Q_HOST=$SERVICE_HOST
KEYSTONE_AUTH_HOST=$SERVICE_HOST
KEYSTONE_SERVICE_HOST=$SERVICE_HOST
DATABASE_TYPE=mysql
ENABLED_SERVICES=n-cpu,q-agt,neutron,n-api-meta,c-vol,c-bak,placement-client,n-novnc
Q_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=3001:4000
PHYSICAL_NETWORK=default
# vnc config
NOVA_VNC_ENABLED=True
NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_lite.html"
VNCSERVER_LISTEN=$HOST_IP
VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN
# Logging
LOG_COLOR=True
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen
# use TryStack git mirror
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
---执行安装
FORCE=yes ./stack.sh
我自己测试下来无需任何代理,都能成功安装
如果失败一般都是网络问题,如果失败了可以先 ./unstack 然后./clean 再重新执行安装
之前还遇到过openvswitch安装报错失败,可以自己先建个br-int
apt install openvswitch-switch -y
ovs-vsctl add-br br-int
---装好后要发现下计算节点:
nova-manage cell_v2 discover_hosts --verbose
----Dashboard登陆
http://192.168.101.11/dashboard
----列出所有组件
stack@controller:~/devstack$ ll /etc/systemd/system/ | grep devstack | awk '{print $9}'
devstack@barbican-keystone-listener.service
devstack@barbican-retry.service
devstack@barbican-svc.service
devstack@c-api.service
devstack@c-sch.service
devstack@c-vol.service
devstack@g-api.service
devstack@g-reg.service
devstack@keystone.service
devstack@n-api-meta.service
devstack@n-api.service
devstack@n-cond-cell1.service
devstack@n-cpu.service
devstack@n-novnc-cell1.service
devstack@n-sch.service
devstack@n-sproxy-cell1.service
devstack@n-super-cond.service
devstack@o-api.service
devstack@o-cw.service
devstack@o-da.service
devstack@o-hk.service
devstack@o-hm.service
devstack@placement-api.service
devstack@q-agt.service
devstack@q-dhcp.service
devstack@q-l3.service
devstack@q-meta.service
devstack@q-svc.service
c-*是cinder,g-*是glance,n-*是nova,o-*是octavia,q-*是neutron