ToB企服应用市场:ToB评测及商务社交产业平台

标题: 云盘算基础架构平台搭建,云盘算平台开辟与运维,搭建openstack平台 [打印本页]

作者: 八卦阵    时间: 2024-6-25 16:34
标题: 云盘算基础架构平台搭建,云盘算平台开辟与运维,搭建openstack平台
基础环境设置

一、创建虚拟机

先创建两台虚拟机内存放大一些,实际用的内存不会那么高

1.controller节点硬件设置
镜像我这里使用1804的   (注意:要添加一个仅主机模式的网络适配器)


2.编辑compute硬件
添加硬盘

三次下一步默认设置到这里

 (注意这里是两张网卡,一张NET,一张仅主机)

开机
二、基础设置

1.修改网路设置
controller跟compute节点
(根据自己ip a检察网卡名字进行修改)
  1. vi /etc/sysconfig/network-scripts/ifcfg-ens33
复制代码
在末了面添加以下信息,DNS1为网关ip(我这里controller节点的ip为192.168.200.10,compute节点为192.168.200.20)
  1. IPADDR=192.168.200.10
  2. NETMASK=255.255.255.0
  3. GATEWAY=192.168.200.2
  4. DNS1=192.168.200.2
复制代码
 ip改为固定的
 

 第二张网卡只须要将这里改为yes,也可以不改
 

重启网络
  1. systemctl restart network
复制代码
尝试ping外网

2.关闭防火墙
(controller节点加compute节点)
  1. systemctl stop firewalld
  2. systemctl disable firewalld
复制代码
3.更改主机名
(controller节点加compute节点)
  1. hostnamectl set-hostname controller
  2. bash
复制代码
4.映射
controller节点
  1. vi /etc/hosts
复制代码
在下面添加两个节点的ip跟名字,(ip根据自己的改,名字跟下面的一样)

5.进行免密操作
  1. ssh-keygen
复制代码
(一直回车)

  1. ssh-copy-id compute
复制代码
yes
密码(盘算节点的开机密码)

  1. scp /etc/hosts compute:/etc/hosts
复制代码
6.修改seliunx
  1. vi /etc/selinux/config
复制代码
这个改成图片中的模式

7.yum源设置
(controller节点加compute节点)
  1. mv /etc/yum.repos.d/* /media/
复制代码
  1. vi /etc/yum.repos.d/openstack.repo
复制代码
  1. [centos-base]
  2. name=centos-base
  3. baseurl=https://mirrors.163.com/centos/$releasever/os/$basearch
  4. gpgcheck=0
  5. enabled=1
  6. [centos-extras]
  7. name=centos-extras
  8. baseurl=https://mirrors.163.com/centos/$releasever/extras/$basearch
  9. gpgcheck=0
  10. enabled=1
  11. [openstack]
  12. name=openstack rocky
  13. baseurl=https://mirrors.163.com/centos/$releasever/cloud/$basearch/openstack-rocky
  14. gpgcheck=0
  15. enabled=1
  16. [virt]
  17. name=virt
  18. baseurl=https://mirrors.163.com/centos/$releasever/virt/$basearch/kvm-common/
  19. gpgcheck=0
  20. enabled=1
复制代码
  1. yum repolist
复制代码

效果为13404多个包
三、基础服务和软件安装

注意节点信息
1.时间服务

  1. yum install -y chrony
复制代码
controller节点
    (发起下载一个vim(这个可以更直观看文档里面的区别)效果与vi下令大同小异,但是更直观。后面的vi下令本教程同一用vim)
  下载vim下令(可以选择不下)
  1. yum install -y vim
复制代码
  1. vim /etc/chrony.conf
复制代码

  1. systemctl restart chronyd
  2. systemctl enable chronyd
复制代码
测试
compute节点
在末了面添加
  1. server 192.168.200.10 iburst
复制代码


重启服务
  1. systemctl restart chronyd
  2. systemctl enable chronyd
复制代码

  1. chronyc sources
复制代码

2.安装基础软件

(controller节点加compute节点)
  1. yum install -y python-openstackclient
  2. yum install -y openstack-selinux
复制代码
3.安装数据库

只须要在controller节点安装
  1. yum install -y mariadb mariadb-server python2-PyMYSQL
复制代码
  1. vim /etc/my.cnf.d/openstack.cnf
复制代码
在里面添加(ip改为自己controller节点的ip)
  1. [mysqld]
  2. bind-address = 192.168.200.10
  3. default-storage-engine = innodb
  4. innodb_file_per_table = on
  5. max_connections = 4096
  6. collation-server = utf8_general_ci
  7. character-set-server = utf8
复制代码
(开机自启服务)
  1. systemctl enable mariadb.service
复制代码
(启动服务)
  1. systemctl start mariadb.service
复制代码
进行安全设置
  1. mysql_secure_installation
复制代码
Enter current password for root (enter for none):回车
Set root password? [Y/n] y
New password:输入密码(一般为000000)
Re-enter new password:再次输入密码
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
4.消息服务

只在controller节点安装rabbitmq
  1. yum install -y rabbitmq-server
复制代码
启动服务
  1. systemctl enable rabbitmq-server.service
  2. systemctl start rabbitmq-server.service
复制代码
增长用户和授权
  1. rabbitmqctl add_user openstack 000000
复制代码
成功是显示以下,如果报错,先检查另一台虚拟机是否改名成controller,


    如果报错;两个节点都进行以下操作
  1. hostnamectl set-hostname controller
  2. bash
复制代码
操作完上面这步后,两个节点都打
  1. reboot
复制代码
这是让两个节点重启,让环境见效,然后重新连接第三方输入密码后重新打
  1. rabbitmqctl add_user openstack 000000
复制代码

  1. rabbitmqctl set_permissions openstack ".*" ".*" ".*"
复制代码
成功如下

5.缓冲服务memcache

只在controller节点安装
  1. yum -y install memcached python-memcached
复制代码
修改设置
  1. vim /etc/sysconfig/memcached
复制代码
在1后面添加,controller

启动服务
  1. systemctl enable memcached.service
  2. systemctl start memcached.service
复制代码

到此完成基础服务和软件安装,发起两台虚拟机保存快照,自己备注好

四、安装和设置Keystone

该使命在controller节点完成,但请确保compute节点为开机状态
(1)数据库的创建
  1. mysql -u root -p000000
复制代码


下令如下
  1. CREATE DATABASE keystone;
复制代码
  1. GRANT ALL PRIVILEGES ON keystone.* \
  2. TO 'keystone'@'localhost' IDENTIFIED BY '000000';
复制代码
  1. GRANT ALL PRIVILEGES ON keystone.* \
  2. TO 'keystone'@'%' IDENTIFIED BY '000000';
复制代码
打完成功后如上图所示
exit   退出
(2)安装keystone
  1. yum install -y openstack-keystone httpd mod_wsgi
复制代码
(3)修改设置
  1. vim /etc/keystone/keystone.conf
复制代码
  (发起下载一个vim(这个可以更直观看文档里面的区别)效果与vi下令大同小异,但是更直观。后面的vi下令本教程同一用vim)
  下载vim下令(可以选择不下)
  1. yum install -y vim
复制代码
在对应下面添加,得找到对应的  []  下添加
  
比方:

  
[database]

  
connection = mysql+pymysql://keystone:000000@controller/keystone

  
[token]

  
provider = fernet

  查找技巧:在下令模式下(也就是保存退出时用到的Esc这个按键),:/   后面添加要查找的关键字符,如   :/database     后按回车进行查找第一个,如果要继续往下查找,按n键往下查找,按Shift+n键为往上查找
  (不要将[database]中的[]符号加入到查找里面)
  [database]
  1. connection = mysql+pymysql://keystone:000000@controller/keystone
复制代码
 [token]
  1. provider = fernet
复制代码




(4)初始化数据库
  1. su -s /bin/sh -c "keystone-manage db_sync" keystone
复制代码
(5)初始化keystone
  1. keystone-manage fernet_setup --keystone-user keystone \
  2. --keystone-group keystone
复制代码
  1. keystone-manage credential_setup --keystone-user keystone \
  2. --keystone-group keystone
复制代码
  1. keystone-manage bootstrap --bootstrap-password 000000 \
  2. --bootstrap-admin-url http://controller:5000/v3/  \
  3. --bootstrap-internal-url http://controller:5000/v3/  \
  4. --bootstrap-public-url http://controller:5000/v3/  \
  5. --bootstrap-region-id RegionOne
复制代码
(6)修改httpd的设置
  1. vim  /etc/httpd/conf/httpd.conf
复制代码
可以通过上面介绍的查找关键字,找关键字ServerName,将前面注释符#删掉

改成

  1. ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
复制代码
(7)启动httpd服务
  1. systemctl enable httpd.service
  2. systemctl start httpd.service
复制代码
(8)设置环境变量
  1. vi ~/.bashrc
复制代码
在最下面添加
  1. export OS_USERNAME=admin
  2. export OS_PASSWORD=000000
  3. export OS_PROJECT_NAME=admin
  4. export OS_USER_DOMAIN_NAME=Default
  5. export OS_PROJECT_DOMAIN_NAME=Default
  6. export OS_AUTH_URL=http://controller:5000/v3
  7. export OS_IDENTITY_API_VERSION=3
  8. export OS_IMAGE_API_VERSION=2
复制代码
保存退出
  1. source ~/.bashrc
复制代码
这个下令为更新上面的设置,不用重新登录,省下来的三分钟你能干嘛,懂的都懂
(9)创建一个项目
  1. openstack project create --domain default --description "Service Project" service
复制代码
成功创建后显示以下

要是你还不确信,继续执行
  1. openstack project list
复制代码

不就跟书籍上一样了嘛,舒服没,犟驴 o . O
2.设置openstack下令的主动补全功能

.
(1)安装bash-completion软件
  1. yum -y install bash-completion
复制代码
(2)修改~/.bashrc文件,在末了加上
  1. vi ~/.bashrc
复制代码
  1. source <(openstack complete --shell bash)
复制代码
再更新一下设置
  1. source ~/.bashrc
复制代码
完成后发起保存一下快照
书籍例3-2
  1. token=$(openstack token issue -f value -c id)
复制代码
  1. echo $token
复制代码
完成显示


  1. curl -s http://controller:5000/v3/projects -H "Content-type: application/json" -H "X-Auth-Token: $token" | python -mjson.tool|grep name
复制代码


五、安装Glance

1.Glance安装和设置

(1)创建数据库
  1. mysql -u root -p000000
复制代码

  1. CREATE DATABASE glance;
复制代码
  1. GRANT ALL PRIVILEGES ON glance.*  TO 'glance'@'localhost' \
  2. IDENTIFIED BY '000000';
复制代码
  1. GRANT ALL PRIVILEGES ON glance.*  TO 'glance'@'%' \
  2. IDENTIFIED BY '000000';
复制代码
检察是否成功创建好数据库
  1. show databases;
复制代码


exit退出

(2)创建用户、脚色和服务
  1. openstack user create --domain default --password-prompt glance
复制代码
输入两次密码

  1. openstack role add --project service --user glance admin
复制代码
  1. openstack service create --name glance   --description "OpenStack Image" image
复制代码
效果

(3)创建Endpoint
1
  1. openstack endpoint create --region RegionOne \
  2. image public http://controller:9292
复制代码

2
  1. openstack endpoint create --region RegionOne \
  2. image internal http://controller:9292
复制代码

3
  1. openstack endpoint create --region RegionOne \
  2. image admin http://controller:9292
复制代码

(4)安装软件
  1. yum -y install openstack-glance
复制代码
(5)修改设置
修改/etc/glance/glance-api.conf
  1. vim /etc/glance/glance-api.conf
复制代码
通过查找关键字,在下面添加以下设置(每次添加后再次查找,先按Esc进入下令模式后打:/ )
(查找【】中心的单词,不要添加【】)
    (发起下载一个vim(这个可以更直观看文档里面的区别)效果与vi下令大同小异,但是更直观。后面的vi下令本教程同一用vim)
  下载vim下令(可以选择不下)
  1. yum install -y vim
复制代码
在对应下面添加,得找到对应的  []  下添加
  
[database]

  
connection = mysql+pymysql://keystone:000000@controller/keystone

  
[token]

  
provider = fernet

  查找技巧:在下令模式下(也就是保存退出时用到的Esc这个按键),:/   后面添加要查找的关键字符,如   :/database     后按回车进行查找第一个,如果要继续往下查找,按n键往下查找,按Shift+n键为往上查找
  (不要将[database]中的[]符号加入到查找里面)
  [database]
  1. connection = mysql+pymysql://glance:000000@controller/glance
复制代码
[keystone_authtoken]
  1. www_authenticate_uri  = http://controller:5000
  2. auth_url = http://controller:5000
  3. memcached_servers = controller:11211
  4. auth_type = password
  5. project_domain_name = Default
  6. user_domain_name = Default
  7. project_name = service
  8. username = glance
  9. password = 000000
复制代码
如图所示


[paste_deploy]
  1. flavor = keystone
复制代码
[glance_store]
  1. stores = file,http
  2. default_store = file
  3. filesystem_store_datadir = /var/lib/glance/images/
复制代码
修改/etc/glance/glance-registry.conf
  1. vim /etc/glance/glance-registry.conf
复制代码
跟上面操作一样,查找后添加进去
[database]
  1. connection = mysql+pymysql://glance:000000@controller/glance
复制代码
[keystone_authtoken]
  1. www_authenticate_uri = http://controller:5000
  2. auth_url = http://controller:5000
  3. memcached_servers = controller:11211
  4. auth_type = password
  5. project_domain_name = Default
  6. user_domain_name = Default
  7. project_name = service
  8. username = glance
  9. password = 000000
复制代码
[paste_deploy]
  1. flavor = keystone
复制代码
(6)初始化数据库
  1. su -s /bin/sh -c "glance-manage db_sync" glance
复制代码

(7)使能和启动服务
  1. systemctl enable openstack-glance-api.service \
  2. openstack-glance-registry.service
复制代码
  1. systemctl start openstack-glance-api.service \
  2. openstack-glance-registry.service
复制代码
(8)创建镜像
 该操作须要提前准备好镜像Centos-7-x86_64-2009.qcow2和cirros-0.3.3-x86_64-disk.img
放到mnt目次
方法一:书籍操作
  1. glance image-create --name centos7 --disk-format qcow2 \
  2. --container-format bare --progress \
  3. < /mnt/openstack/images/Centos-7-x86_64-2009.qcow2
复制代码
  1. glance image-create --name cirros --disk-format qcow2 \
  2. --container-format bare --progress \
  3. < /mnt/openstack/images/cirros-0.3.3-x86_64-disk.img
复制代码
检察上传环境
  1. glance image-list
复制代码
方法二:我这里提供和使用的镜像CentOS-7-x86_64-2009.qcow2和cirros-0.3.4-x86_64-disk.img
拉到mnt目次(如果这里不成功,有大概是glance数据库没创建成功,可以mysql -u root -p000000进入数据库,用show databases;检察有没有创建有glance的数据库)

  1. glance image-create --name centos7 --disk-format qcow2 --container-format bare --progress < /mnt/CentOS-7-x86_64-2009.qcow2
复制代码
  1. glance image-create --name cirros --disk-format qcow2 --container-format bare --progress < /mnt/cirros-0.3.4-x86_64-disk.img
复制代码
 检察上传环境
  1. glance image-list
复制代码


六、安装和设置Nova

1.controller节点

(1)创建数据库
  1. mysql -u root -p000000
复制代码
密码
1
  1. CREATE DATABASE nova_api;
复制代码
 2
  1. CREATE DATABASE nova;
复制代码
 3
  1. CREATE DATABASE nova_cell0;
复制代码
 4
  1. CREATE DATABASE placement;
复制代码
 1(这里的1-8可以尝试使用本小段最下面整段复制)
  1. GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
  2. IDENTIFIED BY '000000';
复制代码
 2
  1. GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
  2. IDENTIFIED BY '000000';
复制代码
 3
  1. GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
  2. IDENTIFIED BY '000000';
复制代码
 4
  1. GRANT ALL PRIVILEGES ON nova.* \
  2. TO 'nova'@'%' IDENTIFIED BY '000000';
复制代码
 5
  1. GRANT ALL PRIVILEGES ON nova_cell0.* \
  2. TO 'nova'@'localhost' IDENTIFIED BY '000000';
复制代码
 6
  1. GRANT ALL PRIVILEGES ON nova_cell0.* \
  2. TO 'nova'@'%' IDENTIFIED BY '000000';
复制代码
 7
  1. GRANT ALL PRIVILEGES ON placement.* \
  2. TO 'placement'@'localhost' IDENTIFIED BY '000000';
复制代码
 8
  1. GRANT ALL PRIVILEGES ON placement.* \
  2. TO 'placement'@'%' IDENTIFIED BY '000000';
复制代码
exit退出
   (整段的下令如下)
  1. GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
  2. IDENTIFIED BY '000000';
  3. GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
  4. IDENTIFIED BY '000000';
  5. GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
  6. IDENTIFIED BY '000000';
  7. GRANT ALL PRIVILEGES ON nova.* \TO 'nova'@'%' IDENTIFIED BY '000000';GRANT ALL PRIVILEGES ON nova_cell0.* \
  8. TO 'nova'@'localhost' IDENTIFIED BY '000000';
  9. GRANT ALL PRIVILEGES ON nova_cell0.* \
  10. TO 'nova'@'%' IDENTIFIED BY '000000';
  11. GRANT ALL PRIVILEGES ON placement.* \
  12. TO 'placement'@'localhost' IDENTIFIED BY '000000';
  13. GRANT ALL PRIVILEGES ON placement.* \
  14. TO 'placement'@'%' IDENTIFIED BY '000000';
复制代码
(2)创建用户、脚色和服务
  1. openstack user create --domain default --password-prompt nova
复制代码
输入两次密码

  1. openstack role add --project service --user nova admin
复制代码
  1. openstack service create --name nova   --description "OpenStack Compute" compute
复制代码
  1. openstack user create --domain default --password-prompt placement
复制代码

输入两次密码
  1. openstack role add --project service --user placement admin
复制代码
  1. openstack service create --name placement   --description "Placement API" placement
复制代码
完成效果

(3)创建Endpoint(下面还是有整段
  1. openstack endpoint create --region RegionOne   compute public http://controller:8774/v2.1
复制代码
 2
  1. openstack endpoint create --region RegionOne   compute internal http://controller:8774/v2.1
复制代码
 3
  1. openstack endpoint create --region RegionOne   compute admin http://controller:8774/v2.1
复制代码
 4
  1. openstack endpoint create --region RegionOne   placement public http://controller:8778
复制代码
 5
  1. openstack endpoint create --region RegionOne   placement internal http://controller:8778
复制代码
 6
  1. openstack endpoint create --region RegionOne   placement admin http://controller:8778
复制代码
   整段下令如下
  1. openstack endpoint create --region RegionOne   compute public http://controller:8774/v2.1
  2. openstack endpoint create --region RegionOne   compute internal http://controller:8774/v2.1
  3. openstack endpoint create --region RegionOne   compute admin http://controller:8774/v2.1
  4. openstack endpoint create --region RegionOne   placement public http://controller:8778
  5. openstack endpoint create --region RegionOne   placement internal http://controller:8778
  6. openstack endpoint create --region RegionOne   placement admin http://controller:8778
复制代码
(4)安装软件
  1. yum -y install openstack-nova-api openstack-nova-conductor \
  2. openstack-nova-console openstack-nova-novncproxy \
  3. openstack-nova-scheduler openstack-nova-placement-api
复制代码
(5)修改设置
修改/etc/nova/nova.conf
  1. vim  /etc/nova/nova.conf
复制代码
  (发起下载一个vim(这个可以更直观看文档里面的区别)效果与vi下令大同小异,但是更直观。后面的vi下令本教程同一用vim)
  下载vim下令(可以选择不下)
  1. yum install -y vim
复制代码
在对应下面添加,得找到对应的  []  下添加
  
比方:

  
[database]

  
connection = mysql+pymysql://keystone:000000@controller/keystone

  
[token]

  
provider = fernet

  查找技巧:在下令模式下(也就是保存退出时用到的Esc这个按键),:/   后面添加要查找的关键字符,如   :/database     后按回车进行查找第一个,如果要继续往下查找,按n键往下查找,按Shift+n键为往上查找
  (不要将[database]中的[]符号加入到查找里面)
  这里的ip改为自己controller节点的ip
[DEFAULT]
  1. enabled_apis = osapi_compute,metadata
  2. transport_url = rabbit://openstack:000000@controller
  3. my_ip = 192.168.200.10
  4. use_neutron = true
  5. firewall_driver = nova.virt.firewall.NoopFirewallDriver
复制代码
[api_database]
  1. connection = mysql+pymysql://nova:000000@controller/nova_api
复制代码
[database]
  1. connection = mysql+pymysql://nova:000000@controller/nova
复制代码
[placement_database]
  1. connection = mysql+pymysql://placement:000000@controller/placement
复制代码
[api]
  1. auth_strategy = keystone
复制代码
[keystone_authtoken]
  1. auth_url = http://controller:5000/v3
  2. memcached_servers = controller:11211
  3. auth_type = password
  4. project_domain_name = Default
  5. user_domain_name = Default
  6. project_name = service
  7. username = nova
  8. password = 000000
复制代码
[vnc]
  1. enabled = true
  2. server_listen = $my_ip
  3. server_proxyclient_address = $my_ip
  4. novncproxy_base_url = http://controller:6080/vnc_auto.html
复制代码
[glance]
  1. api_servers = http://controller:9292
复制代码
[oslo_concurrency]
  1. lock_path = /var/lib/nova/tmp
复制代码
[placement]
  1. region_name = RegionOne
  2. project_domain_name = Default
  3. project_name = service
  4. auth_type = password
  5. user_domain_name = Default
  6. auth_url = http://controller:5000/v3
  7. username = placement
  8. password = 000000
复制代码
修改/etc/httpd/conf.d/00-nova-placement-api.conf
  1. vim /etc/httpd/conf.d/00-nova-placement-api.conf
复制代码

在最下面添加(在Esc下令模式下,如果不可,记着这个位置)
本来的设置(这个不用复制)
   Listen 8778
  <VirtualHost *:8778>
  WSGIProcessGroup nova-placement-api
  WSGIApplicationGroup %{GLOBAL}
  WSGIPassAuthorization On
  WSGIDaemonProcess nova-placement-api processes=3 threads=1 user=nova group=nova
  WSGIScriptAlias / /usr/bin/nova-placement-api
  <IfVersion >= 2.4>
    ErrorLogFormat "%M"
  </IfVersion>
  ErrorLog /var/log/nova/nova-placement-api.log
  #SSLEngine On
  #SSLCertificateFile ...
  #SSLCertificateKeyFile ...
</VirtualHost>
  Alias /nova-placement-api /usr/bin/nova-placement-api
<Location /nova-placement-api>
  SetHandler wsgi-script
  Options +ExecCGI
  WSGIProcessGroup nova-placement-api
  WSGIApplicationGroup %{GLOBAL}
  WSGIPassAuthorization On
</Location>
 
   (添加下面的内容)
  1. <Directory /usr/bin>
  2.    <IfVersion >= 2.4>
  3.       Require all granted
  4.    </IfVersion>
  5.    <IfVersion < 2.4>
  6.       Order allow,deny
  7.       Allow from all
  8.    </IfVersion>
  9. </Directory>
复制代码
重启httpd
  1. systemctl restart httpd
复制代码
(6)初始化数据库
  1. su -s /bin/sh -c "nova-manage api_db sync" nova
复制代码
  1. su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
复制代码
  1. su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
复制代码
  1. su -s /bin/sh -c "nova-manage db sync" nova
复制代码
  1. su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova
复制代码

完成后该告诫,这些重复索引是被废弃的,并在未来的版本中将被克制使用。这些告诫信息可以被忽略

(7)使能和启动服务
  1. systemctl enable openstack-nova-api.service \
  2. openstack-nova-consoleauth.service \
  3. openstack-nova-scheduler.service \
  4. openstack-nova-conductor.service \
  5. openstack-nova-novncproxy.service
复制代码
  1. systemctl start openstack-nova-api.service \
  2. openstack-nova-consoleauth.service \
  3. openstack-nova-scheduler.service \
  4. openstack-nova-conductor.service \
  5. openstack-nova-novncproxy.service
复制代码
2.compute节点

(1)安装软件
  1. yum -y install openstack-nova-compute
复制代码
(2)修改设置
修改/etc/nova/nova.conf
  1. vim /etc/nova/nova.conf
复制代码
[DEFAULT](这个ip改为compute节点ip)
  1. enabled_apis = osapi_compute,metadata
  2. transport_url = rabbit://openstack:000000@controller
  3. my_ip = 192.168.200.20
  4. use_neutron = true
  5. firewall_driver = nova.virt.firewall.NoopFirewallDriver
复制代码
[api]
  1. auth_strategy = keystone
复制代码

[keystone_authtoken]
  1. auth_url = http://controller:5000/v3
  2. memcached_servers = controller:11211
  3. auth_type = password
  4. project_domain_name = Default
  5. user_domain_name = Default
  6. project_name = service
  7. username = nova
  8. password = 000000
复制代码
[vnc]
  1. enabled = true
  2. server_listen = 0.0.0.0
  3. server_proxyclient_address = $my_ip
  4. novncproxy_base_url = http://controller:6080/vnc_auto.html
复制代码
[glance]
  1. api_servers = http://controller:9292
复制代码

[oslo_concurrency]
  1. lock_path = /var/lib/nova/tmp
复制代码

[placement]
  1. region_name = RegionOne
  2. project_domain_name = Default
  3. project_name = service
  4. auth_type = password
  5. user_domain_name = Default
  6. auth_url = http://controller:5000/v3
  7. username = placement
  8. password = 000000
复制代码
[libvirt]
  1. virt_type = qemu
复制代码
                                                     保存退出
(3)使能和启动服务
  1. systemctl enable libvirtd.service openstack-nova-compute.service
复制代码
  1. systemctl start libvirtd.service openstack-nova-compute.service
复制代码
3.compute节点加入集群

(1)在controller节点执行
列出盘算节点:

  1. openstack compute service list --service nova-compute
复制代码
将盘算节点加入cell:

  1. su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
复制代码
查询cell中的盘算节点:

  1. nova-manage cell_v2 list_hosts
复制代码
七、安装和设置Neutron

1.controller节点

(1)创建数据库
  1. mysql -uroot -p
复制代码
 输入密码
  1. CREATE DATABASE neutron;
  2. GRANT ALL PRIVILEGES ON neutron.* \
  3. TO 'neutron'@'localhost' IDENTIFIED BY '000000';
  4. GRANT ALL PRIVILEGES ON neutron.* \
  5. TO 'neutron'@'%'  IDENTIFIED BY '000000';
  6. exit
复制代码
(2)创建用户、脚色和服务
  1. openstack user create --domain default --password-prompt neutron
复制代码
输入两次密码
  1. openstack role add --project service --user neutron admin
复制代码

  1. openstack service create --name neutron --description "OpenStack Networking" network
复制代码
(3)创建Endpoint
  1. openstack endpoint create --region RegionOne network public http://controller:9696
  2. openstack endpoint create --region RegionOne network internal http://controller:9696
  3. openstack endpoint create --region RegionOne network admin http://controller:9696
复制代码
(4)安装软件
  1. yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
  2. yum -y install libibverbs
复制代码
(5)修改设置
修改1  neutron.conf
修改/etc/neutron/neutron.conf
  1. vim /etc/neutron/neutron.conf
复制代码
  (发起下载一个vim(这个可以更直观看文档里面的区别)效果与vi下令大同小异,但是更直观。后面的vi下令本教程同一用vim)
  下载vim下令(可以选择不下)
  1. yum install -y vim
复制代码
在对应下面添加,得找到对应的  []  下添加
  
比方:

  
[database]

  
connection = mysql+pymysql://keystone:000000@controller/keystone

  
[token]

  
provider = fernet

  查找技巧:在下令模式下(也就是保存退出时用到的Esc这个按键),:/   后面添加要查找的关键字符,如   :/database     后按回车进行查找第一个,如果要继续往下查找,按n键往下查找,按Shift+n键为往上查找
  (不要将[database]中的[]符号加入到查找里面)
  [database]
  1. connection = mysql+pymysql://neutron:000000@controller/neutron
复制代码

[DEFAULT]
  1. core_plugin = ml2
  2. service_plugins = router
  3. allow_overlapping_ips = true
  4. transport_url = rabbit://openstack:000000@controller
  5. auth_strategy = keystone
  6. notify_nova_on_port_status_changes = true
  7. notify_nova_on_port_data_changes = true
复制代码
[keystone_authtoken]
  1. www_authenticate_uri = http://controller:5000
  2. auth_url = http://controller:5000
  3. memcached_servers = controller:11211
  4. auth_type = password
  5. project_domain_name = default
  6. user_domain_name = default
  7. project_name = service
  8. username = neutron
  9. password = 000000
复制代码
[nova]
  1. auth_url = http://controller:5000
  2. auth_type = password
  3. project_domain_name = default
  4. user_domain_name = default
  5. region_name = RegionOne
  6. project_name = service
  7. username = nova
  8. password = 000000
复制代码
[oslo_concurrency]
  1. lock_path = /var/lib/neutron/tmp
复制代码
                                                   保存退出
修改2  ml2_conf.ini
修改/etc/neutron/plugins/ml2/ml2_conf.ini
  1. vim /etc/neutron/plugins/ml2/ml2_conf.ini 
复制代码
[ml2]
  1. type_drivers = flat,vlan,vxlan,local
  2. tenant_network_types = vxlan,local
  3. mechanism_drivers = linuxbridge,l2population
  4. extension_drivers = port_security
复制代码
[ml2_type_flat]
  1. flat_networks = provider
复制代码

[ml2_type_vlan]
  1. network_vlan_ranges = provider:100:200
复制代码

[ml2_type_vxlan]
  1. vni_ranges = 1:1000
复制代码

[securitygroup]
  1. enable_ipset = true
复制代码
保存退出
修改3 linuxbridge_agent.ini
修改/etc/neutron/plugins/ml2/linuxbridge_agent.ini
  1. vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
复制代码
[linux_bridge](这里的ens34为自己第二张网卡名)
  1. physical_interface_mappings = provider:ens34
复制代码

[vxlan](下面的ip改为自己controller控制节点的ip)
  1. enable_vxlan = true
  2. local_ip = 192.168.200.10
  3. l2_population = true
复制代码
[securitygroup]
  1. enable_security_group = true
  2. firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
复制代码
                                       保存退出
加载模块(这个是在表面打的)
  1. lsmod|grep br_netfilter
复制代码
  1. modprobe br_netfilter
复制代码
修改4     内核参数
  1. vim /etc/sysctl.conf
复制代码
末了面添加
  1. net.bridge.bridge-nf-call-iptables=1
  2. net.bridge.bridge-nf-call-ip6tables=1
复制代码
                                     保存退出
修改完后执行
  1. sysctl -p
复制代码
修改5      /etc/neutron/l3_agent.ini
  1. vim /etc/neutron/l3_agent.ini
复制代码
[DEFAULT]
  1. interface_driver = linuxbridge
复制代码
                                     保存退出
修改6        /etc/neutron/dhcp_agent.ini ,设置dhcp服务
  1. vim /etc/neutron/dhcp_agent.ini 
复制代码
[DEFAULT]
  1. interface_driver = linuxbridge
  2. dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
  3. enable_isolated_metadata = true
复制代码
                                      保存退出
修改7         /etc/neutron/metadata_agent.ini,设置metadata服务
  1. vim /etc/neutron/metadata_agent.ini
复制代码
[DEFAULT]
  1. nova_metadata_host = controller
  2. metadata_proxy_shared_secret = 000000
复制代码
修改8         控制节点的/etc/nova/nova.conf,让Nova使用Neutron
  1. vim /etc/nova/nova.conf
复制代码
[neutron]
  1. url = http://controller:9696
  2. auth_url = http://controller:5000
  3. auth_type = password
  4. project_domain_name = default
  5. user_domain_name = default
  6. region_name = RegionOne
  7. project_name = service
  8. username = neutron
  9. password = 000000
  10. service_metadata_proxy = true
  11. metadata_proxy_shared_secret = 000000
复制代码
                                             保存退出
建立符号链接
  1. ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
复制代码
(6)初始化数据库
  1. su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
  2. --config-file /etc/neutron/plugins/ml2/ml2_conf.ini \
  3. upgrade head" neutron
复制代码

(7)使能和启动服务
  1. systemctl restart openstack-nova-api.service
复制代码
  1. systemctl enable neutron-server.service \
  2. neutron-linuxbridge-agent.service \
  3. neutron-dhcp-agent.service \
  4. neutron-metadata-agent.service
复制代码
  1. systemctl start neutron-server.service \
  2. neutron-linuxbridge-agent.service \
  3. neutron-dhcp-agent.service \
  4. neutron-metadata-agent.service
复制代码
  1. systemctl enable neutron-l3-agent.service
复制代码
  1. systemctl start neutron-l3-agent.service
复制代码
2.compute节点

(1)安装软件
  1. yum -y install openstack-neutron-linuxbridge ebtables ipset
复制代码
  1. yum -y install libibverbs
复制代码
(2)修改设置
修改/etc/neutron/neutron.conf
  1. vim /etc/neutron/neutron.conf
复制代码
[DEFAULT]
  1. transport_url = rabbit://openstack:000000@controller
  2. auth_strategy = keystone
复制代码
[keystone_authtoken]
  1. www_authenticate_uri = http://controller:5000
  2. auth_url = http://controller:5000
  3. memcached_servers = controller:11211
  4. auth_type = password
  5. project_domain_name = default
  6. user_domain_name = default
  7. project_name = service
  8. username = neutron
  9. password = 000000
复制代码
[oslo_concurrency]
  1. lock_path = /var/lib/neutron/tmp
复制代码
修改/etc/neutron/plugins/ml2/linuxbridge_agent.ini
  1. vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
复制代码
[linux_bridge](这里的ens34改为自己第二张网卡(仅主机模式的网卡)名称)
  1. physical_interface_mappings = provider:ens34
复制代码

[vxlan]  (这里ip改为盘算节点ip)
  1. enable_vxlan = true
  2. local_ip = 192.168.200.20
  3. l2_population = true
复制代码
[securitygroup]
  1. enable_security_group = true
  2. firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
复制代码
加载模块
  1. lsmod|grep br_netfilter
  2. modprobe br_netfilter
复制代码
修改内核参数
  1. vim /etc/sysctl.conf
复制代码
添加
  1. net.bridge.bridge-nf-call-iptables=1
  2. net.bridge.bridge-nf-call-ip6tables=1
复制代码


修改完后执行:
  1. sysctl -p
复制代码

修改/etc/nova/nova.conf,让Nova使用Neutron
  1. vim /etc/nova/nova.conf
复制代码
[neutron]
  1. url = http://controller:9696
  2. auth_url = http://controller:5000
  3. auth_type = password
  4. project_domain_name = default
  5. user_domain_name = default
  6. region_name = RegionOne
  7. project_name = service
  8. username = neutron
  9. password = 000000
复制代码
(3)使能和启动服务
  1. systemctl restart openstack-nova-compute.service
  2. systemctl enable neutron-linuxbridge-agent.service
  3. systemctl start neutron-linuxbridge-agent.service
复制代码

到此完成neutron搭建,内存充足发起保存快照

八、安装和设置Dashboard

1.controller节点安装和设置

只在controller节点安装
(1)安装软件
  1. yum -y install openstack-dashboard
复制代码
(2)修改设置
修改/etc/openstack-dashboard/local_settings
  1. vim /etc/openstack-dashboard/local_settings
复制代码
查找关键字   OPENSTACK_HOST =
将这三行前添加注释符#,
然后添加
  1. OPENSTACK_HOST = "controller"
  2. ALLOWED_HOSTS = ['*', 'two.example.com']
  3. SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
  4. CACHES = {
  5.     'default': {
  6.          'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
  7.          'LOCATION': 'controller:11211',
  8.     }
  9. }
  10. OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
  11. OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
  12. OPENSTACK_API_VERSIONS = {
  13.     "identity": 3,
  14.     "image": 2,
  15.     "volume": 2,
  16. }
  17. OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"
  18. OPENSTACK_KEYSTONE_DEFAULT_ROLE = "admin"
  19. TIME_ZONE = "Asia/Shanghai"
复制代码

                                     保存退出
修改/etc/httpd/conf.d/openstack-dashboard.conf 
  1. vim /etc/httpd/conf.d/openstack-dashboard.conf 
复制代码
在最下面添加
  1. WSGIApplicationGroup %{GLOBAL}
复制代码
                               保存退出
(3)重启httpd和memcached服务
  1. systemctl restart httpd.service memcached.service
复制代码
(4)网页搜刮192.168.200.10/dashboard  (也就是controller节点ip/dashboard)
剩下的看书籍图片即可
Default
admin
000000




当创建的云主机操控台无法访问到controller节点的ip时

可以点右边字体跳转更详细教程openstack控制台显示找不到controller节点ip
九、下令行模式创建云主机

(如果云平台已经创建有网络这些东西,先删除同名的)
1.检察有无名为cirros的镜像
  1. openstack image list
复制代码

如果没有cirros镜像,则创建cirros镜像:(cirros-0.3.4-x86_64-disk.img这个镜像放在mnt目次)
  1. glance image-create --disk-format qcow2 --container-format bare --name cirros </mnt/cirros-0.3.4-x86_64-disk.img
复制代码
2.创建实例类型
  1. openstack flavor create --id 2 --ram 1024 --disk 1 --vcpus 1 f2
复制代码
3.创建网络
(1)创建外网
  1. openstack network create --project admin --provider-physical-network provider \
  2. --provider-network-type flat --external ext-net
复制代码
(2)创建内网
  1. openstack network create --project admin  --provider-network-type vxlan --internal int-net
复制代码
(3)创建外网子网(ip网关用第二张网卡的ip网关)
  1. openstack subnet create --project admin --dhcp --gateway 192.168.100.1 --subnet-range 192.168.100.0/24 --network ext-net --allocation-pool start=192.168.100.100,end=192.168.100.200 ext-subnet
复制代码
(4)创建内网子网(这里ip直接用这个)
  1. openstack subnet create --project admin --dhcp --gateway 10.1.1.1 --subnet-range 10.1.1.0/24 --network int-net  int-subnet
复制代码
4.创建路由器
(1)创建路由器
  1. openstack router create --project admin router1
复制代码
(2)设置外网网关
  1. openstack router set --external-gateway ext-net --enable-snat router1
复制代码
(3)连接内网
  1. openstack router add subnet router1 int-subnet
复制代码
5.创建安全组与规则
(1)创建安全组
  1. openstack security group create --project admin sg-1
复制代码
(2)创建安全组规则
  1. openstack security group rule create --remote-ip 0.0.0.0/0 --ethertype IPv4 \
  2. --protocol icmp  --ingress sg-1
  3. openstack security group rule create --remote-ip 0.0.0.0/0 --ethertype IPv4 \
  4. --protocol icmp  --egress sg-1
  5. openstack security group rule create --remote-ip 0.0.0.0/0 --ethertype IPv4 \
  6. --protocol tcp  --dst-port 1:65535 --ingress sg-1
  7. openstack security group rule create --remote-ip 0.0.0.0/0 --ethertype IPv4 \
  8. --protocol tcp  --dst-port 1:65535 --egress sg-1
  9. openstack security group rule create --remote-ip 0.0.0.0/0 --ethertype IPv4 \
  10. --protocol udp  --dst-port 1:65535 --ingress sg-1
  11. openstack security group rule create --remote-ip 0.0.0.0/0 --ethertype IPv4 \
  12. --protocol udp  --dst-port 1:65535 --egress sg-1
复制代码
6.创建实例
  1. openstack server create  --image cirros --flavor f2 --security-group sg-1 \
  2. --availability-zone nova --network int-net vm01
复制代码
7.绑定浮动IP
(1)天生浮动IP
  1. openstack floating ip create ext-net
复制代码
(2)绑定浮动IP
  1. openstack floating ip list
复制代码
  1. openstack server add floating ip vm01 192.168.30.104
复制代码
注:192.168.30.104要根据实际查询效果更换。











免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4