OpenStack03-安装OpenStack

  • 安装说明文档:https://docs.openstack.org/install-guide/openstack-services.html
  • 配置文件说明:https://docs.openstack.org/ocata/config-reference/
  • 下载虚拟机镜像:https://docs.openstack.org/image-guide/

1、准备基础虚拟机

1.1、安装服务器

1..1、虚拟机配置

  • 内存:2G(越大越好)
  • 处理器:2个(越多越好)
    • 必须勾选虚拟化功能,否则openstack无法启动云主机。
  • 网路适配器:2个
    • 一个基于NAT
    • 一个基于仅主机

OpenStack03-安装OpenStack_第1张图片

1.1.2、设置网卡名称

  • 在进入安装界面的时候把光标移动到Install CentOS7,按下tab键,在后面输入“net.ifnames=0 biosdevname=0”回车即可。

OpenStack03-安装OpenStack_第2张图片

1.1.2、安装配置

 

OpenStack03-安装OpenStack_第3张图片

1.2、服务器配置

1.2.1、配置网络

1、配置eth0网卡(NAT)

  • 能上网就行,有些选项删掉了

1

2

3

4

5

6

7

8

9

10

]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

TYPE="Ethernet"

BOOTPROTO="static"       #使用静态IP

NAME="eth0"

DEVICE="eth0"

ONBOOT="yes"             #在系统启动时激活网卡

IPADDR=10.1.1.222        #设置机器IP

NETMASK=255.255.255.0    #设置网络掩码

GATEWAY=10.1.1.2         #设置网关IP

DNS1=114.114.114.114     #设置DNS

2、配置eth1网卡(仅主机)

1

2

3

4

5

6

7

8

]# vi /etc/sysconfig/network-scripts/ifcfg-eth1

TYPE=Ethernet

BOOTPROTO=static

NAME=eth1

DEVICE=eth1

ONBOOT=yes

IPADDR=192.168.1.222

NETMASK=255.255.255.0

3、重启网络服务

1

]# systemctl restart network.service

4、查看网卡配置

OpenStack03-安装OpenStack_第4张图片

1.2.2、修改hostname

1

2

]# vi /etc/hostname

centos7

1.2.3、关闭防火墙、SELinux和NetworkManager

1

2

3

4

5

6

7

8

9

10

11

12

//关闭防火墙

]# systemctl disable firewalld.service

]# systemctl stop firewalld.service

//关闭SELinux

]# vi /etc/selinux/config

SELINUX=disabled

]# setenforce 0

//关闭NetworkManager

]# systemctl disable NetworkManager.service

]# systemctl stop NetworkManager.service

1.2.4、优化ssh

1

2

3

4

5

6

7

8

//修改sshd的配置文件

]# vi /etc/ssh/sshd_config

PasswordAuthentication yes

GSSAPIAuthentication no

UseDNS no

//重启sshd服务

]# systemctl restart sshd

1.2.5、安装常用的基础命令

  • 注意,不推荐使用epel源,因为可能会有不兼容的问题。

1

2

3

]# yum install vim tar zip unzip tree telnet lsof ntpdate tcpdump wget gcc gcc-c++ make python-devel pam-devel screen \

    rsync psmisc lrzsz lsb nfs-utils openssl openssl-devel libevent libevent-devel iotop bc glibc glibc-devel bash-completion \

    pcre pcre-devel zlib-devel net-tools libevent libevent-devel bc systemd-devel traceroute bridge-utils

1.2.5、同步时间

  • 注意,OpenStack使用队列进行异步操作,对时间同步要求比较严格。

1

2

3

4

5

6

7

8

9

//(1)同步时间

]# ntpdate time1.aliyun.com

//(2)将系统时间写入硬件时钟

]# hwclock -w

//(3)设置同步时间的定时任务

]# vim /var/spool/cron/root

*/30 * * * * /usr/sbin/ntpdate time1.aliyun.com && hwclock -w

1.2.6、关机做快照

  • 后面所有需要的机器都会以该快照为基础进行创建。

1

]# poweroff

2、开始安装OpenStack

2.1、OpenStack的部署架构图

OpenStack03-安装OpenStack_第5张图片

2.2、机器规划

  • 使用上面的虚拟机模板创建5个虚拟机。
    • 10.1.1.11:CentOSLinuxrelease7.7.1908(Core),内存4G,CPU 2核。openstack控制节点
    • 10.1.1.12:CentOSLinuxrelease7.7.1908(Core),内存2G,CPU 2核。openstack计算节点
    • 10.1.1.13:CentOSLinuxrelease7.7.1908(Core),内存2G,CPU 2核。openstack计算节点
    • 10.1.1.14:CentOSLinuxrelease7.7.1908(Core),内存2G,CPU 2核。公共组件
    • 10.1.1.15:CentOSLinuxrelease7.7.1908(Core),内存2G,CPU 2核。高可用
  • 在所有openstack节点添加hosts

1

2

]# vim /etc/hosts

10.1.1.15 openstack-haproxy-vip

3、启用OpenStack存储库

  • 安装OpenStack,必须先在所有机器上安装OpenStack存储库。

1、查看可以使用的OpenStack存储库

1

2

3

4

5

6

7

//查看可以使用yum安装的OpenStack版本

]# yum list centos-release-openstack*

可安装的软件包

centos-release-openstack-queens.noarch                                   1-2.el7.centos                                    extras

centos-release-openstack-rocky.noarch                                    1-1.el7.centos                                    extras

centos-release-openstack-stein.noarch                                    1-1.el7.centos                                    extras

centos-release-openstack-train.noarch                                    1-1.el7.centos                                    extras

2、安装OpenStack存储库

1

]# yum install centos-release-openstack-train

3、安装RDO存储库,启用OpenStack存储库

1

]# yum install https://rdoproject.org/repos/rdo-release.rpm

4、安装haproxy

  • 在10.1.1.15上安装haproxy。

1、安装haproxy

1

]# yum install haproxy

2、配置haproxy

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

//原文件仅保留global和defaults段,并追加一下内容

]# vim /etc/haproxy/haproxy.cfg

listen haproxy-status

    bind :18080

    stats enable

    stats uri /haproxystatus

    stats auth admin:admin

    stats admin if TRUE

    stats realm Haproxy\ status

    stats refresh 10s

    stats hide-version

  

listen openstack-mysql-3306

    bind 10.1.1.15:3306

    mode tcp

    server 10.1.1.14-3306 10.1.1.14:3306 check inter 3 fall 3 rise 5

listen openstack-rabbitmq-5672

    bind 10.1.1.15:5672

    mode tcp

    server 10.1.1.14-5672 10.1.1.14:5672 check inter 3 fall 3 rise 5

listen openstack-memcached-11211

    bind 10.1.1.15:11211

    mode tcp

    server 10.1.1.14-11211 10.1.1.14:11211 check inter 3 fall 3 rise 5

  

listen openstack-keystone-5000

    bind 10.1.1.15:5000

    mode tcp

    server 10.1.1.11-5000 10.1.1.11:5000 check inter 3 fall 3 rise 5

listen openstack-glance-9292

    bind 10.1.1.15:9292

    mode tcp

    server 10.1.1.11-9292 10.1.1.11:9292 check inter 3 fall 3 rise 5

listen openstack-placement-8778

    bind 10.1.1.15:8778

    mode tcp

    server 10.1.1.11-8778 10.1.1.11:8778 check inter 3 fall 3 rise 5

listen openstack-nova-8774

    bind 10.1.1.15:8774

    mode tcp

    server 10.1.1.11-8774 10.1.1.11:8774 check inter 3 fall 3 rise 5

listen openstack-nova-8775

    bind 10.1.1.15:8775

    mode tcp

    server 10.1.1.11-8775 10.1.1.11:8775 check inter 3 fall 3 rise 5

listen openstack-neutron-9696

    bind 10.1.1.15:9696

    mode tcp

    server 10.1.1.11-9696 10.1.1.11:9696 check inter 3 fall 3 rise 5

  

listen openstack-vnc-6080

    bind 10.1.1.15:6080

    mode tcp

    server 10.1.1.11-6080 10.1.1.11:6080 check inter 3 fall 3 rise 5

  

listen openstack-dashboard-80

    bind 10.1.1.15:80

    mode tcp

    server 10.1.1.11-80 10.1.1.11:80 check inter 3 fall 3 rise 5

listen openstack-cinder

    bind 10.1.1.15:8776

    mode tcp

    server 10.1.1.11-8776 10.1.1.11:8776 check inter 3 fall 3 rise 5

3、启动haproxy

1

2

]# systemctl enable haproxy.service

]# systemctl start haproxy.service

5、安装OpenStack依赖的服务

  • 在10.1.1.14上安装mysql、rabbitmq和memcached。
  • 在安装mariadb、RabbitMQ和Memcached前,也要“启用OpenStack存储库”,这样这三个服务就可以使用由openstack yum源提供的rpm包了。

5.1、安装mariadb-server

1、安装mariadb-server

1

]# yum install mariadb mariadb-server

2、配置mariadb-server

1

2

3

4

5

6

7

8

9

]# vim /etc/my.cnf.d/openstack.cnf

[mysqld]

bind-address = 0.0.0.0

default-storage-engine = innodb

innodb_file_per_table = on

max_connections = 4096

collation-server = utf8_general_ci

character-set-server = utf8

3、启动mariadb.service

1

2

]# systemctl enable mariadb.service

]# systemctl start mariadb.service

4、mariadb安全设置

1

]# mysql_secure_installation

5.2、安装RabbitMQ

1、安装RabbitMQ

1

]# yum install rabbitmq-server

2、启动RabbitMQ

1

2

]# systemctl enable rabbitmq-server.service

]# systemctl start rabbitmq-server.service

3、添加RabbitMQ用户

1

2

3

4

5

//(1)添加openstack用户

]# rabbitmqctl add_user openstack openstack123

//(2)允许 openstack用户进行配置、写入和读取访问:

]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"

4、开启RabbitMQ的管理页面

  • 开启rabbitmq_management插件后,RabbitMQ会默认增加一个端口15672。

1

]# rabbitmq-plugins enable rabbitmq_management

5.3、安装Memcached

1、安装Memcached

1

]# yum install memcached

2、配置Memcached

1

2

3

4

5

6

]# vim /etc/sysconfig/memcached

PORT="11211"

USER="memcached"

MAXCONN="1024"

CACHESIZE="64"

OPTIONS="-l 0.0.0.0,::1"

3、启动Memcached

1

2

]# systemctl enable memcached.service

]# systemctl start memcached.service

6、安装OpenStack的命令行工具

  • 在10.1.1.11上安装openstack命令行工具(openstack控制节点)。

1

]# yum install python-openstackclient openstack-selinux

7、安装Keystone(Identity service)

  • 在10.1.1.11上安装keystone(openstack控制节点)。

7.1、前提条件

  • 创建MySQL用户

1

2

3

4

5

6

7

8

//(1)登录MySQL

]# mysql -u root -p

//(2)创建MySQL数据库

MariaDB [(none)]> CREATE DATABASE keystone;

//(3)创建MySQL用户,并授权

MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone123';

7.2、安装和配置keystone

7.2.1、安装keystone

  • 在安装openstack-keystone前,要“启用OpenStack存储库”,使用由openstack yum源提供的rpm包。

1

]# yum install openstack-keystone httpd mod_wsgi python2-PyMySQL

7.2.2、配置keystone

  • 配置要连接的数据库和

1

2

3

4

5

6

7

8

]# vim /etc/keystone/keystone.conf

//连接mysql

[database]

connection = mysql+pymysql://keystone:keystone123@openstack-haproxy-vip/keystone

//配置Fernet令牌(再次登录时,keystone会检查用户的令牌,而不是查询数据库)

[token]

provider = fernet

  • 也可以使用配置工具openstack-config进行配置

 View Code

7.2.3、初始化keystone数据库

  • 会在keystone数据库中创建许多数据表。

1

]# su -s /bin/sh -c "keystone-manage db_sync" keystone

7.2.4、创建Fernet令牌的key

  • 这两个命令会分别在/etc/keystone/下创建一个目录用于存放key。
    • 允许在另一个操作系统用户/组(user/group)下运行keystone。

1

2

3

4

5

//为Fernet令牌创建加密key

]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

//用于加密和解密凭据秘密的key。

]# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

7.2.5、初始化Keystone服务

1

2

3

4

5

6

//执行基本的引导过程

]# keystone-manage bootstrap --bootstrap-password admin123 \

  --bootstrap-admin-url http://openstack-haproxy-vip:5000/v3/ \

  --bootstrap-internal-url http://openstack-haproxy-vip:5000/v3/ \

  --bootstrap-public-url http://openstack-haproxy-vip:5000/v3/ \

  --bootstrap-region-id RegionOne

  • 参数说明:
    • --bootstrap-password OS_BOOTSTRAP_PASSWORD:bootstrap用户的密码
    • --bootstrap-admin-url OS_BOOTSTRAP_ADMIN_URL:在keystone引导过程中,注册keystone的API(管理网络)。例如,http://127.0.0.1:5000/v3
    • --bootstrap-internal-url OS_BOOTSTRAP_INTERNAL_URL:在keystone引导过程中,注册keystone的API(内部网络)。例如http://127.0.0.1:5000/v3
    • --bootstrap-public-url OS_BOOTSTRAP_PUBLIC_URL:在keystone引导过程中,注册keystone的API(共有网络)。例如http://127.0.0.1:5000/v3
    • --bootstrap-region-id OS_BOOTSTRAP_REGION_ID:初始的region_id端点将在keystone引导过程中放置。

7.3、配置Apache

1、修改apache的配置文件

  • 配置选项ServerName指向控制器节点。

1

2

]# vim /etc/httpd/conf/httpd.conf

ServerName 10.1.1.11:80

2、创建wsgi-keystone.conf的连接

1

]# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

7.4、启动keystone

  • keystone是一个htttpd程序。

1、启动apache

1

2

]# systemctl enable httpd.service

]# systemctl start httpd.service

2、测试Keystone的API

1

2

3

4

5

]# curl 10.1.1.11:5000

{ "versions": { "values": [{ "status""stable""updated""2019-07-19T00:00:00Z""media-types": [{ "base""application/json""type""application/vnd.openstack.identity-v3+json"}], "id""v3.13""links": [{ "href""http://10.1.1.11:5000/v3/""rel""self"}]}]}}

]# curl openstack-haproxy-vip:5000

{ "versions": { "values": [{ "status""stable""updated""2019-07-19T00:00:00Z""media-types": [{ "base""application/json""type""application/vnd.openstack.identity-v3+json"}], "id""v3.13""links": [{ "href""http://openstack-haproxy-vip:5000/v3/""rel""self"}]}]}}

7.5、创建OpenStack客户端的认证脚本

1、创建OpenStack的管理帐户(admin)的认证脚本

  • 认证脚本创建后,就可以执行openstack命令了(相当于kubectl)

1

2

3

4

5

6

7

8

9

10

//创建连接Keystone的认证脚本(这些值是keystone-manage bootstrap创建的默认值)

]# vim admin-openrc

export OS_PROJECT_DOMAIN_NAME=Default

export OS_USER_DOMAIN_NAME=Default

export OS_PROJECT_NAME=admin

export OS_USERNAME=admin

export OS_PASSWORD=admin123

export OS_AUTH_URL=http://openstack-haproxy-vip:5000/v3

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

2、使用openstack命令

  • 例如,查看用户信息。

1

2

3

4

5

6

7

8

9

10

//(1)加载环境变量

]# source admin-openrc

//(2)执行openstack命令

]# openstack user list

+----------------------------------+-------+

| ID                               | Name  |

+----------------------------------+-------+

| e0327c9801a845468c382d6c659bb659 | admin |

+----------------------------------+-------+

3、验证用户“admin”的身份令牌

1

2

3

4

5

6

7

8

9

10

//(1)取消临时环境变量OS_AUTH_URL和OS_PASSWORD

]# unset OS_AUTH_URL OS_PASSWORD

//(2)验证用户“admin”的身份令牌(要输入两次密码)

]# openstack token issue \

  --os-auth-url http://openstack-haproxy-vip:5000/v3 \

  --os-project-domain-name Default \

  --os-user-domain-name Default \

  --os-project-name admin \

  --os-username admin

7.6、创建域、项目、用户和角色

7.5.1、创建域和项目(必须创建)

  • 安装后续的组件时会使用域“default”和项目“service”。

1

2

3

4

5

6

7

8

//(1)source admin凭据以管理员身份访问的Keystone

]# source admin-openrc

//(2)创建默认域“default”(注意,默认域在“初始化Keystone”时已经创建了)

]# openstack domain create --description "The default domain" default

//(3)创建项目“service”

]# openstack project create --domain default --description "Service Project" service

7.5.2、创建测试账户(可以不创建)

1、创建域、项目、用户和角色

1

2

3

4

5

6

7

8

9

10

11

12

13

14

//(1)创建默认域“default”(注意,默认域在“初始化Keystone”时已经创建了)

]# openstack domain create --description "The default domain" default

//(2)创建项目“myproject”

]# openstack project create --domain default --description "myproject Project" myproject

//(3)创建用户“myuser”

]# openstack user create --domain default --password-prompt myuser

//(4)创建角色“myrole”

]# openstack role create myrole

//(5)将角色“myrole”添加(绑定)到myproject项目和myuser用户中

]# openstack role add --project myproject --user myuser myrole

2、创建OpenStack的myuser帐户的认证脚本

1

2

3

4

5

6

7

8

9

10

//创建连接Keystone的认证脚本

]# vim myuser-openrc

export OS_PROJECT_DOMAIN_NAME=Default

export OS_USER_DOMAIN_NAME=Default

export OS_PROJECT_NAME=myproject

export OS_USERNAME=myuser

export OS_PASSWORD=myuser

export OS_AUTH_URL=http://openstack-haproxy-vip:5000/v3

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

3、使用myuser-openrc脚本

1

2

3

4

5

//(1)加载变量

]# source m

你可能感兴趣的:(linux,c++,DPDK,openstack,服务器,OpenStack,c/c++,linux)