|
1 | 1 | # 附:安装配置
|
2 | 2 | 参考 https://github.com/yeasy/openstack-tool。
|
| 3 | + |
| 4 | +# DevStack 安装 OpenStack 多节点(Juno+Neutron+ML2+VXLAN) |
| 5 | + |
| 6 | +目前安装 OpenStack 常见的方案有 Redhat 的 [RDO](https://openstack.redhat.com/) 和社区的 [DevStack](http://docs.openstack.org/developer/devstack/)。 |
| 7 | + |
| 8 | +当然,也可以手动安装,可以参考:[github.com/ChaimaGhribi/OpenStack-Juno-Installation/blob/master/OpenStack-Juno-Installation.rst](https://github.com/ChaimaGhribi/OpenStack-Juno-Installation/blob/master/OpenStack-Juno-Installation.rst) |
| 9 | + |
| 10 | +其中,RDO 功能比较强大,运行也稳定,可以在一个节点上通过一个 answer 文件直接部署多个节点,搭建一套 OpenStack 环境。但是可惜,在 Ubuntu 上还不支持。 |
| 11 | + |
| 12 | +DevStack 支持 Ubuntu、Fedora 等环境,需要在每个节点上单独执行,适合进行实验。目前常见的教程一般都是讲解 DevStack 单节点安装。本文讲解最新的 Juno 版本在多节点上的安装过程。 |
| 13 | + |
| 14 | +# 网络环境 |
| 15 | +两台机器,分为控制节点(同时也作为网络节点)和计算节点。 |
| 16 | +## 控制节点 |
| 17 | +eth0: 9.186.100.77/24 作为管理网络(同时也是公共网络)。 |
| 18 | +eth1: 10.0.100.77/24 作为内部网络接口。 |
| 19 | + |
| 20 | +## 计算节点 |
| 21 | +eth0: 9.186.100.88/24 作为管理网络(同时也是公共网络)。 |
| 22 | +eth1: 10.0.100.88/24 作为内部网络接口。 |
| 23 | + |
| 24 | +# 配置 stack 用户 |
| 25 | + |
| 26 | +创建 stack 用户 |
| 27 | +``` |
| 28 | +sudo groupadd stack |
| 29 | +sudo useradd -g stack -s /bin/bash -d /opt/stack -m stack |
| 30 | +``` |
| 31 | + |
| 32 | +添加 stack 用户权限。 |
| 33 | + |
| 34 | +``` |
| 35 | +sudo echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers |
| 36 | +``` |
| 37 | + |
| 38 | +切换到 stack 用户 |
| 39 | +``` |
| 40 | +sudo su - stack |
| 41 | +``` |
| 42 | + |
| 43 | +# 下载代码 |
| 44 | + |
| 45 | +下载 devstack 代码,并切换到 stable/juno 分支。 |
| 46 | +``` |
| 47 | +sudo apt-get install git -y |
| 48 | +git clone https://git.openstack.org/openstack-dev/devstack -b stable/juno |
| 49 | +``` |
| 50 | + |
| 51 | +# 编写运行配置文件 |
| 52 | + |
| 53 | +在 devstack 根目录下,编写 local.conf。 |
| 54 | + |
| 55 | +控制节点的 local.conf |
| 56 | + |
| 57 | +```sh |
| 58 | +[[local|localrc]] |
| 59 | + |
| 60 | +MULTI_HOST=true |
| 61 | +HOST_IP=9.186.100.77 # management network |
| 62 | + |
| 63 | +FIXED_RANGE=10.0.0.0/24 #tenant private network |
| 64 | +NETWORK_GATEWAY=10.0.0.1 |
| 65 | +#FIXED_NETWORK_SIZE=4096 |
| 66 | + |
| 67 | +PUBLIC_INTERFACE=eth0 #public network |
| 68 | +FLOATING_RANGE=9.186.100.128/25 |
| 69 | +PUBLIC_NETWORK_GATEWAY=9.186.100.1 |
| 70 | + |
| 71 | +TUNNEL_ENDPOINT_IP=10.0.100.77 # data network endpoint for vxlan |
| 72 | + |
| 73 | +LOGFILE=/opt/stack/logs/stack.sh.log |
| 74 | + |
| 75 | +# Credentials |
| 76 | +ADMIN_PASSWORD=admin |
| 77 | +MYSQL_PASSWORD=secret |
| 78 | +RABBIT_PASSWORD=secret |
| 79 | +SERVICE_PASSWORD=secret |
| 80 | +SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz |
| 81 | + |
| 82 | +# enable neutron-ml2-vxlan |
| 83 | +disable_service n-net |
| 84 | +enable_service q-svc,q-agt,q-dhcp,q-l3,q-meta,q-metering,q-lbaas,q-fwaas,q-vpn,neutron,tempest,heat |
| 85 | + |
| 86 | +#OFFLINE=True |
| 87 | + |
| 88 | +LOG_COLOR=False |
| 89 | +LOGDIR=$DEST/logs |
| 90 | +SCREEN_LOGDIR=$LOGDIR/screen |
| 91 | + |
| 92 | +``` |
| 93 | + |
| 94 | +计算节点的 local.conf |
| 95 | + |
| 96 | +```sh |
| 97 | +[[local|localrc]] |
| 98 | +MULTI_HOST=true |
| 99 | + |
| 100 | +HOST_IP=9.186.100.88 # management network |
| 101 | + |
| 102 | +FIXED_RANGE=10.0.0.0/24 # tenant private network |
| 103 | +NETWORK_GATEWAY=10.0.0.1 |
| 104 | +#FIXED_NETWORK_SIZE=4096 |
| 105 | + |
| 106 | +TUNNEL_ENDPOINT_IP=10.0.100.88 # data network endpoint for vxlan |
| 107 | + |
| 108 | +# Credentials |
| 109 | +ADMIN_PASSWORD=admin |
| 110 | +MYSQL_PASSWORD=secret |
| 111 | +RABBIT_PASSWORD=secret |
| 112 | +SERVICE_PASSWORD=secret |
| 113 | +SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz |
| 114 | + |
| 115 | +# Service information |
| 116 | +SERVICE_HOST=9.186.100.77 |
| 117 | +MYSQL_HOST=$SERVICE_HOST |
| 118 | +RABBIT_HOST=$SERVICE_HOST |
| 119 | +GLANCE_HOSTPORT=$SERVICE_HOST:9292 |
| 120 | +Q_HOST=$SERVICE_HOST |
| 121 | +KEYSTONE_AUTH_HOST=$SERVICE_HOST |
| 122 | +KEYSTONE_SERVICE_HOST=$SERVICE_HOST |
| 123 | + |
| 124 | +CEILOMETER_BACKEND=mongodb |
| 125 | +DATABASE_TYPE=mysql |
| 126 | + |
| 127 | +ENABLED_SERVICES=n-cpu,q-agt,neutron |
| 128 | + |
| 129 | +# vnc config |
| 130 | +NOVA_VNC_ENABLED=True |
| 131 | +NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_auto.html" |
| 132 | +VNCSERVER_LISTEN=$HOST_IP |
| 133 | +VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN |
| 134 | + |
| 135 | +#OFFLINE=True |
| 136 | + |
| 137 | +LOG_COLOR=False |
| 138 | +LOGDIR=$DEST/logs |
| 139 | +SCREEN_LOGDIR=$LOGDIR/screen |
| 140 | +#LOGFILE=/opt/stack/logs/stack.sh.log |
| 141 | + |
| 142 | +``` |
| 143 | + |
| 144 | +# 执行配置 |
| 145 | + |
| 146 | +执行命令。 |
| 147 | +``` |
| 148 | +./stack.sh |
| 149 | +``` |
| 150 | + |
| 151 | +会输出各项操作的结果。日志会写到 stack.sh.log 文件。成功后最后会打印出相关信息。 |
| 152 | + |
| 153 | +控制节点上 |
| 154 | + |
| 155 | +``` |
| 156 | +Horizon is now available at http://9.186.100.77/ |
| 157 | +Keystone is serving at http://9.186.100.77:5000/v2.0/ |
| 158 | +Examples on using novaclient command line is in exercise.sh |
| 159 | +The default users are: admin and demo |
| 160 | +The password: admin |
| 161 | +This is your host ip: 9.186.100.77 |
| 162 | +``` |
| 163 | +执行成功后,在控制节点上,将物理网卡 eth0 绑定到 br-ex 网桥上。 |
| 164 | +```sh |
| 165 | +sudo ifconfig eth0 0.0.0.0; sudo ovs-vsctl add-port br-ex eth0; sudo ifconfig br-ex 9.186.100.77/24; sudo route add default gw 9.186.100.1 |
| 166 | +``` |
| 167 | + |
| 168 | +# 其它事项 |
| 169 | + |
| 170 | +## 停止服务 |
| 171 | +停止 OpenStack 的各个服务(DevStack 默认每个服务都在一个 screen 中以进程方式运行,可以通过 screen -x stack 进入查看)。 |
| 172 | +```sh |
| 173 | +./unstack.sh |
| 174 | +``` |
| 175 | + |
| 176 | +## 清除安装。 |
| 177 | +```sh |
| 178 | +./clean.sh |
| 179 | +``` |
| 180 | + |
| 181 | +## 手动清除 |
| 182 | +有时候有些文件可能清除不干净,手动执行 |
| 183 | +``` |
| 184 | +sudo rm -rf /etc/libvirt/qemu/inst* |
| 185 | +sudo virsh list | grep inst | awk '{print $1}' | xargs -n1 virsh destroy |
| 186 | +``` |
| 187 | +## 依赖版本 |
| 188 | +安装过程中可能会报某些包版本不满足的问题,手动安装后。 |
| 189 | + |
| 190 | +例如报 six 包版本过低。 |
| 191 | + |
| 192 | +``` |
| 193 | +sudo pip install six --upgrade |
| 194 | +``` |
| 195 | + |
| 196 | +## screen 操作 |
| 197 | +ctrl+a+" 显示 session 列表。 |
| 198 | +ctrl+a+d 挂起到后台。 |
0 commit comments