基于openstack安装部署私有云详细图文教程_openstack有哪些部署方法 请详细阐述一种私有云系统openstack的部署过程和方

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

IDENTIFIED BY ‘KEYSTONE_DBPASS’;
mysql> GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@‘%’
IDENTIFIED BY ‘KEYSTONE_DBPASS’;
mysql> exit

自动生成表:

su -s /bin/sh -c “keystone-manage db_sync” keystone

设置用户环境变量:

ADMIN_TOKEN=$(openssl rand -hex 10)
echo $ADMIN_TOKEN
openstack-config --set /etc/keystone/keystone.conf DEFAULT
admin_token $ADMIN_TOKEN

keystone-manage pki_setup --keystone-user keystone --keystone-group keystone

chown -R keystone:keystone /etc/keystone/ssl

chmod -R o-rwx /etc/keystone/ssl

启动keystone服务:

service openstack-keystone start
chkconfig openstack-keystone on

将admin_token设置到环境变量中去。

export OS_SERVICE_TOKEN=$ADMIN_TOKEN
export OS_SERVICE_ENDPOINT=http://controller:35357/v2.0

创建管理员用户,默认的用户名为admin,密码为ADMIN_PASS,你可以自定义修改:

[root@controller keystone]# keystone user-create --name=admin --pass=ADMIN_PASS --email=ADMIN_EMAIL
±---------±---------------------------------+
| Property | Value |
±---------±---------------------------------+
| email | ADMIN_EMAIL|
| enabled | True |
|id| 332f5ecb18c64bf687b154facd629fb6 |
| name | admin |
| username | admin |
±---------±---------------------------------+
[root@controller keystone]# keystone role-create --name=admin
±---------±---------------------------------+
| Property | Value |
±---------±---------------------------------+
|id| ab5da2c50d7443efb0514e84c2b4adb7 |
| name | admin |
±---------±---------------------------------+
[root@controller keystone]# keystone tenant-create --name=admin --description=“Admin Tenant”
±------------±---------------------------------+
| Property | Value |
±------------±---------------------------------+
| description | Admin Tenant |
| enabled | True |
| id | b89723a38b154eeea6416a83b293b0ad |
| name| admin |
±------------±---------------------------------+
[root@controller keystone]# keystone user-role-add --user=admin --tenant=admin --role=admin
[root@controller keystone]# keystone user-role-add --user=admin --role=member --tenant=admin
[root@controller keystone]#

创建一个权限认证服务,因为我这里的主机名是controller,所以下面有 http://controller:35357/v2.0 这些信息,可以自定义修改:

[root@controller keystone]# keystone service-create --name=keystone --type=identity \

–description=“OpenStack Identity”
±------------±---------------------------------+
| Property | Value |
±------------±---------------------------------+
| description |OpenStack Identity|
| enabled | True |
| id | 4bfd5f39b86c45edb92d5c0488987dd8 |
| name| keystone |
| type| identity |
±------------±---------------------------------+
[root@controller keystone]# keystone endpoint-create
–service-id=$(keystone service-list | awk ‘/ identity / {print $2}’)
–publicurl=http://controller:5000/v2.0
–internalurl=http://controller:5000/v2.0
–adminurl=http://controller:35357/v2.0
±------------±---------------------------------+
| Property | Value |
±------------±---------------------------------+
| adminurl | http://controller:35357/v2.0 |
| id | 0350b72901a141498fe48304b13a1b98 |
| internalurl | http://controller:5000/v2.0|
| publicurl | http://controller:5000/v2.0|
|region |regionOne |
| service_id | 4bfd5f39b86c45edb92d5c0488987dd8 |
±------------±---------------------------------+
[root@controller keystone]# keystone user-create --name=demo --pass=DEMO_PASS --email=DEMO_EMAIL
±---------±---------------------------------+
| Property | Value |
±---------±---------------------------------+
| email |DEMO_EMAIL|
| enabled | True |
|id| b44a9a1462d74f4e928b3b339289a2ae |
| name | demo |
| username | demo |
±---------±---------------------------------+
[root@controller keystone]# keystone tenant-create --name=demo --description=“Demo Tenant”
±------------±---------------------------------+
| Property | Value |
±------------±---------------------------------+
| description | Demo Tenant|
| enabled | True |
| id | 7bd79509ee184a2098ca0644679b60a8 |
| name| demo |
±------------±---------------------------------+
[root@controller keystone]# keystone user-role-add --user=demo --role=member --tenant=demo
[root@controller keystone]#

为了方便我们取到token,我们可以vi admin-openrc.sh,然后添加如下内容:

export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_TENANT_NAME=admin
export OS_AUTH_URL=http://controller:35357/v2.0

在每次关机重启之后都要重新执行下面的命令,让环境变量起作用。否则会报”Expecting an auth URL via either –os-auth-url or env[OS_AUTH_URL]”的错误:

source admin-openrc.sh

我们可以使用下面的命令查看keystone目前的用户有哪些:

keystone user-list

测试效果:

打开restclient-ui-3.5-jar-with-dependencies.jar来测试效果:

url地址是: http://192.168.44.147:5000/v2.0/

访问成功。

配置镜像服务(glance)

在controller服务器中安装服务:

yum install openstack-glance python-glanceclient

openstack-config --set /etc/glance/glance-api.conf database
connection mysql://glance:GLANCE_DBPASS@controller/glance

openstack-config --set /etc/glance/glance-registry.conf database
connection mysql://glance:GLANCE_DBPASS@controller/glance

在mysql数据库中创建glance数据库:

$ mysql -u root -p
mysql> CREATE DATABASE glance;
mysql> GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@‘localhost’
IDENTIFIED BY ‘GLANCE_DBPASS’;
mysql> GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@‘%’
IDENTIFIED BY ‘GLANCE_DBPASS’;

flush privileges;

自动生成表:

su -s /bin/sh -c “glance-manage db_sync” glance

在keystone上创建用户:

keystone user-create --name=glance --pass=GLANCE_PASS --email=glance@example.com
$ keystone user-role-add --user=glance --tenant=service --role=admin

配置授权服务:

openstack-config --set /etc/glance/glance-api.conf keystone_authtoken
auth_uri http://controller:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken
auth_host controller
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken
auth_port 35357
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken
auth_protocol http
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken
admin_tenant_name service
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken
admin_user glance
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken
admin_password GLANCE_PASS
openstack-config --set /etc/glance/glance-api.conf paste_deploy
flavor keystone
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken
auth_uri http://controller:5000
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken
auth_host controller
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken
auth_port 35357
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken
auth_protocol http
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken
admin_tenant_name service
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken
admin_user glance
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken
admin_password GLANCE_PASS
openstack-config --set /etc/glance/glance-registry.conf paste_deploy
flavor keystone

启动服务:

service openstack-glance-api start

service openstack-glance-registry start

chkconfig openstack-glance-api on

chkconfig openstack-glance-registry on

创建服务:

$ keystone service-create --name=glance --type=image
–description=“OpenStack Image Service”

$ keystone endpoint-create
–service-id=$(keystone service-list | awk ‘/ image / {print $2}’)
–publicurl=http://controller:9292
–internalurl=http://controller:9292
–adminurl=http://controller:9292

[root@controller ~]# keystone service-create --name=glance --type=image \

–description=“OpenStack Image Service”
/usr/lib64/python2.6/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
_warn(“Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.”, PowmInsecureWarning)
±------------±---------------------------------+
| Property | Value |
±------------±---------------------------------+
| description | OpenStack Image Service |
| enabled | True |
| id | a45f77cfc12c42d19a45a6ea12cdfc51 |
| name| glance |
| type| image |
±------------±---------------------------------+
[root@controller ~]# keystone endpoint-create
–service-id=$(keystone service-list | awk ‘/ image / {print $2}’)
–publicurl=http://controller:9292
–internalurl=http://controller:9292
–adminurl=http://controller:9292

±------------±---------------------------------+
| Property | Value |
±------------±---------------------------------+
| adminurl | http://controller:9292 |
| id | 75deb2d2f85e4b7b88fe18bf5fca1a87 |
| internalurl | http://controller:9292 |
| publicurl | http://controller:9292 |
|region |regionOne |
| service_id | a45f77cfc12c42d19a45a6ea12cdfc51 |
±------------±---------------------------------+

创建镜像,先将下载好的cirros-0.3.2-x86_64-disk.img放置在/root目录下,然后执行下面的命令:

复制代码 代码如下:

glance image-create --name “cirros-0.3.2-x86_64” --disk-format qcow2 \
–container-format bare --is-public True --progress < cirros-0.3.2-x86_64-disk.img

查看镜像列表:

glance image-list

在前面我们已经对kvm虚拟化有所了解,所以我们现在知道qcow2就是一个镜像文件。

服务器管理(Nova)

对于虚拟机管理我们需要从controller和computer01进行配置。

先来看controller的配置:

yum install openstack-nova-api openstack-nova-cert openstack-nova-conductor
openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler
python-novaclient

$ mysql -u root -p
mysql> CREATE DATABASE nova;
mysql> GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@‘localhost’
IDENTIFIED BY ‘NOVA_DBPASS’;
mysql> GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@‘%’
IDENTIFIED BY ‘NOVA_DBPASS’;

openstack-config --set /etc/nova/nova.conf database connection mysql://nova:NOVA_DBPASS@controller/nova

openstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend qpid
openstack-config --set /etc/nova/nova.conf DEFAULT qpid_hostname controller

openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.44.147
openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_listen 192.168.216.210
openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_proxyclient_address 192.168.44.147

openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_host controller
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_protocol http
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_port 35357
openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_user nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_tenant_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_password NOVA_PASS

$ keystone user-create --name=nova --pass=NOVA_PASS --email=nova@example.com
$ keystone user-role-add --user=nova --tenant=service --role=admin

$ keystone service-create --name=nova --type=compute
–description=“OpenStack Compute”
$ keystone endpoint-create
–service-id=$(keystone service-list | awk ‘/ compute / {print $2}’)
–publicurl=http://controller:8774/v2/%(tenant_id)s
–internalurl=http://controller:8774/v2/%(tenant_id)s
–adminurl=http://controller:8774/v2/%(tenant_id)s

然后是computer01的配置:

yum install openstack-nova-compute

openstack-config --set /etc/nova/nova.conf database connection mysql://nova:NOVA_DBPASS@controller/nova
openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_host controller
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_protocol http
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_port 35357
openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_user nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_tenant_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_password NOVA_PASS

openstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend qpid
openstack-config --set /etc/nova/nova.conf DEFAULT qpid_hostname controller

openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.44.148
openstack-config --set /etc/nova/nova.conf DEFAULT vnc_enabled True
openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_listen 0.0.0.0
openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_proxyclient_address 192.168.44.148
openstack-config --set /etc/nova/nova.conf DEFAULT novncproxy_base_url http://controller:6080/vnc_auto.html

openstack-config --set /etc/nova/nova.conf DEFAULT glance_host controller

openstack-config --set /etc/nova/nova.conf libvirt virt_type kvm

启动服务:

service libvirtd start
service messagebus start
service openstack-nova-compute start
chkconfig libvirtd on
chkconfig messagebus on
chkconfig openstack-nova-compute on

网络服务配置

在controller端:

openstack-config --set /etc/nova/nova.conf DEFAULT
network_api_class nova.network.api.API

openstack-config --set /etc/nova/nova.conf DEFAULT
security_group_api nova

在computer01端:

yum install openstack-nova-network openstack-nova-api

openstack-config --set /etc/nova/nova.conf DEFAULT \

network_api_class nova.network.api.API

openstack-config --set /etc/nova/nova.conf DEFAULT \

security_group_api nova

openstack-config --set /etc/nova/nova.conf DEFAULT \

network_manager nova.network.manager.FlatDHCPManager

openstack-config --set /etc/nova/nova.conf DEFAULT \

firewall_driver nova.virt.libvirt.firewall.IptablesFirewallDriver

openstack-config --set /etc/nova/nova.conf DEFAULT \

network_size 254

openstack-config --set /etc/nova/nova.conf DEFAULT \

allow_same_net_traffic False

openstack-config --set /etc/nova/nova.conf DEFAULT \

multi_host True

openstack-config --set /etc/nova/nova.conf DEFAULT \

send_arp_for_ha True

openstack-config --set /etc/nova/nova.conf DEFAULT \

share_dhcp_address True

openstack-config --set /etc/nova/nova.conf DEFAULT \

force_dhcp_release True

openstack-config --set /etc/nova/nova.conf DEFAULT \

flat_network_bridge br100

openstack-config --set /etc/nova/nova.conf DEFAULT \

flat_interface eth1

openstack-config --set /etc/nova/nova.conf DEFAULT \

public_interface eth0

nova network-create demo-net –bridge br100 –multi-host T \

–fixed-range-v4 88.8.8.16/28

然后使用nova net-list来查看:

创建虚拟机

1、配置ssh密码登录:

ssh-keygen

2、增加公钥到openstack环境中:

nova keypair-add --pub-key ~/.ssh/id_rsa.pub demo-key

3、验证是否配置成功:

nova keypair-list

nova flavor-list

4、创建实例:

复制代码 代码如下:

nova boot --flavor m1.tiny --image cirros-0.3.2-x86_64 --nic netid=DEMO_NET_ID\
–security-group default --key-name demo-key demo-instance1

说明:

DEMO_NET_ID:指的是nova net-list的ID。

demo-instance1指的是虚拟机的名字。

例如我的成功执行如下:

nova boot --flavor m1.tiny --image cirros-0.3.2-x86_64 --nic net-id=55fc305f-570f-4d4f-89d0-ce303e589f20
–security-group default --key-name demo-key tfjt

5、使用nova list进行查看。

从这里我们看到我这上面有一个ip地址192.168.44.17.这个地址就是浮动IP。

6、配置浮动IP

浮动ip

nova-manage floating create --ip_range=192.168.44.16/28

查看可用地址

nova-manage floating list

nova floating-ip-create

给创建的虚拟机绑定浮动ip,这个7bc0086…就是我之前创建的虚拟机的ID。后面接上IP地址即可。

nova add-floating-ip 7bc00086-1870-4367-9f05-666d5067ccff 192.168.44.17

监听

cpdump -n -i eth0 icmp

在controller上:

nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0

nova secgroup-add-rule default tcp 22 22 0.0.0.0/0

7、使用下面的命令可以输出一个url地址:

nova get-vnc-console tfjt novnc

8、我们可以在浏览器中进行访问。

到这里为止,我们的云服务器就算完成了。可以在浏览器上访问我们的云服务器,怎么样是不是很激动。

界面服务(dashboard)

上面我们可以看到很多操作是在终端进行的,那么肯定是有界面版的,所以我们在computer02中进行配置。

1、安装服务

yum install memcached python-memcached mod_wsgi openstack-dashboard

2、文件配置。

在controller中

配置/etc/openstack-dashboard/local_settings。修改为如下内容。

ALLOWED_HOSTS = [‘*’]

CACHES = {
‘default’: {
‘BACKEND’ : ‘django.core.cache.backends.memcached.MemcachedCache’,
‘LOCATION’ : ‘127.0.0.1:11211’
}
}

OPENSTACK_HOST = “controller”

3、连接

setsebool -P httpd_can_network_connect on

service httpd start

service memcached start

chkconfig httpd on

chkconfig memcached on

4、浏览器中访问。

http://192.168.44.147/dashboard/project/

用户名就是我们之前配置的admin,密码是ADMIN_PASS

在这个界面版里面的各种操作我这里就不细说了,可以自己去体验。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
']

CACHES = {
‘default’: {
‘BACKEND’ : ‘django.core.cache.backends.memcached.MemcachedCache’,
‘LOCATION’ : ‘127.0.0.1:11211’
}
}

OPENSTACK_HOST = “controller”

3、连接

setsebool -P httpd_can_network_connect on

service httpd start

service memcached start

chkconfig httpd on

chkconfig memcached on

4、浏览器中访问。

http://192.168.44.147/dashboard/project/

[外链图片转存中…(img-8hS0k51g-1713478218108)]

用户名就是我们之前配置的admin,密码是ADMIN_PASS

在这个界面版里面的各种操作我这里就不细说了,可以自己去体验。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-2AeZaOYk-1713478218108)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 11
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值