OpenStack系列(2)

一、基本配置

系统:Ubuntu16.04
Openstack:3.14.2(queens)
网络规划:

控制网 管理网 数据网(tun隧道网) provider网 存储网
192.168.1.0/24 192.168.2.0/24 192.168.3.0/24 192.168.4.0/24 192.168.5.0/24

节点规划:

| | 规格 | 网络 |
| — | — | — |
| 控制节点ctl01 | 2核4G内存10G外存 | 三个网卡,具体配置如下:
控制网卡eth0: 192.168.1.100,
管理网卡eth1: 192.168.2.100,
存储网卡eth2: 192.168.5.100 |
| 计算节点cmp01 | 1核2G内存10G外存 | 四个网卡,具体配置如下:
控制网卡eth0: 192.168.1.150,
管理网卡eth1: 192.168.2.150,
数据网卡(tun隧道网)eth2: 192.168.3.150,
provider网卡eth3: 192.168.4.150 |
| 网络节点gtw01 | 2核4G内存20G外存 | 五个网卡,具体配置如下:
控制网卡eth0: 192.168.1.200,
管理网卡eth1: 192.168.2.200,
数据网卡(tun隧道网)eth2: 192.168.3.200,
provider网卡eth3: 192.168.4.200,
存储网卡eth4: 192.168.5.200 |

008.PNG

## 二、部署前置条件
> 以下操作在所有节点执行

1. 启动root用户远程登录
1
sudo passwd root
  1. 配置网卡

    1
    2
    3
    4
    5
    6
    auto eth0
    iface eth0 inet static
    address 192.168.1.150
    netmask 255.255.255.0
    gateway 192.168.1.2
    dns-nameservers 114.114.114.114
  2. 安装ssh-server

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    apt-get update
    apt-get install openssh-server

    ps -e | grep ssh

    vi /etc/ssh/sshd_config
    将PermitRootLogin prohibit-password
    修改为:PermitRootLogin yes

    service ssh restart
  3. 修改网卡为eth*

    1
    2
    3
    4
    5
    6
    vim /etc/default/grub
    在GRUB_CMDLINE_LINUX=""最后追加"net.ifnames=0 biosdevname=0"
    grub-mkconfig -o /boot/grub/grub.cfg
    vim /etc/network/interfaces
    auto ens160 改为auto eth0
    systemctl enable networking.service
  4. 修改主机名称

    1
    2
    3
    4
    5
    6
    7
    8
    9
    vim /etc/hostname   修改主机名称,分别为ctl01/cmp01/gtw01

    vim /etc/hosts 配置域名解析,修改127.0.0.1对应的主机名称
    #Controller node
    192.168.1.100 ctl01
    #Compute node
    192.168.1.200 cmp01
    #Network node
    192.168.1.150 gtw01
  5. 查看非空行与#开头的内容

    1
    2
    3
    grep -Ev "^#|^$" 文件路径
    查看设备是否支持虚拟化命令
    grep -E '(svm|vmx)' /proc/cpuinfo
  6. 安装python-pip

    1
    2
    用于安装python依赖包
    apt-get install python-pip
  7. NTP安装与配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    apt-get purge libappstream3
    apt-get update

    #1.控制节点
    apt-get install chrony
    vim /etc/chrony/chrony.conf
    添加
    server ctl01 iburst #所有节点向ctl01节点同步时间
    allow 192.168.1.0/24 #设置时间同步网段

    #2.其他节点
    apt-get install chrony
    vim /etc/chrony/chrony.conf
    添加
    server ctl01 iburst

    #3.所有节点执行
    service chrony restart
    chrony sources #验证时钟同步服务

    注意:日常运维中经常遇见时钟漂移问题,导致集群服务脑裂
  8. 安装OpenStack安装包

所有节点,比较耗时

1
2
3
4
5
6
7
8
9
10
11
12
apt-get install software-properties-common
add-apt-repository cloud-archive:queens

apt-get update
apt-get dist-upgrade
#如果有些包升级失败,可采用如下方式:
apt-mark showmanual
apt-mark hold docker-ce
apt-get dist-upgrade
apt-mark unhold docker-ce

apt-get install python-openstackclient

  1. 安装sql数据库

大多数OpenStack服务使用SQL数据库来 存储信息,数据库通常在控制器节点上运行。本文主要使用MariaDB或MySQL。
控制节点或者数据库节点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
apt-get install mariadb-server python-pymysql
vim /etc/mysql/mariadb.conf.d/99-openstack.cnf
#添加如下章节
[mysqld]
bind-address = 192.168.1.100 #使用ctl01节点的管理IP
default-storage-engine = innodb
innodb_file_per_table = on
max _connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8


设置root用户权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '123456aB';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456aB';
FLUSH PRIVILEGES;
show grants for root;

DROP USER 'root'@'localhost';
DROP USER 'root'@'%';

#其他节点,安装mysql客户端
apt-get install mariadb-client

  1. 消息队列安装

消息队列,保证用户请求的顺序。
开启的端口:client通信5672、server管理15672、server组内部通信25672、erlang发现4369
控制节点

1
2
3
4
5
6
apt-get install rabbitmq-server

#添加OpenStack用户,用户名为openstack,密码为rabbit123456
rabbitmqctl add_user openstack rabbit123456
#给用户配置写和读的权限,分别是配置、写入、读取权限
rabbitmqctl set_permissions openstack ".*" ".*" ".*"

  1. 安装缓存插件

服务的身份认证服务使用Memcached缓存令牌,减轻组件间通信压力。memcached服务通常在控制器节点上运行。对于生产部署,我们建议启用防火墙,身份验证和加密的组合来保护它。
控制节点

1
2
3
4
apt-get install memcached python-memcache
vim /etc/memcached.conf
修改 -l 192.168.1.100(控制网IP地址)
service memcached restart

参考文档

  1. https://juejin.im/post/5d5e1ec3e51d453bc470dedf
  2. https://blog.51cto.com/liuleis/2094190