openstack服务运维案例

一、使用NFS作为glance服务后端

(1) 修改主机名

[root@nfs-server ~]# hostnamectl set-hostname nfs-server

(2) 安装nfs

[root@nfs-server ~]# yum -y install nfs-utils
[root@nfs-server ~]# yum -y install rpcbind

(3) nfs服务配置

创建一个nfs共享文件夹共享目录:

[root@nfs-server ~]# mkdir /mnt/test

编辑nfs配置文件:

[root@nfs-server ~]# vi /etc/exports/mnt/test *(rw,no_root_squash)
[root@nfs-server ~]# exportfs -r

(4) nfs服务启动

[root@nfs-server ~]# systemctl start nfs
[root@nfs-server ~]# systemctl start rpcbind

nfs-server端查看可挂载目录,命令如下:

[root@nfs-server ~]# showmount -e 10.26.21.40
Export list for 10.26.21.40:
/mnt/test *

至此,NFS服务的Server端配置完毕,接下来要让Controller节点作为NFS的Client端,配置Glance服务的后端存储使用NFS服务。

(5) 配置nfs作为glance服务后端

5.1 配置controller节点作为nfs-client端

安装nfs:

[root@controller ~]# yum -y install nfs-utils

5.2 挂载目录

在挂载目录之前,必须要弄清楚一件事情,就是Glance服务的后端存储在哪里,或者说,使用glance image-create命令上传的镜像会被存放到哪里。镜像会被存放到/var/lib/glance/images目录下,关于这个路径,感兴趣的读者可以自行上传镜像测试。 知道了Glance的存储路径,就可以挂载该目录到NFS服务了,命令如下:

[root@controller ~]# mount -t nfs 10.26.21.40:/mnt/test /var/lib/glance/images/         #此处ip为nfs服务器ip
[root@controller ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               5.8G     0  5.8G   0% /dev
tmpfs                  5.8G  4.0K  5.8G   1% /dev/shm
tmpfs                  5.8G   17M  5.8G   1% /run
tmpfs                  5.8G     0  5.8G   0% /sys/fs/cgroup
/dev/vda1               50G  3.7G   47G   8% /
/dev/loop0              10G   33M   10G   1% /swift/node/vda6
tmpfs                  1.2G     0  1.2G   0% /run/user/0
10.26.21.40:/mnt/test   40G  852M   40G   3% /var/lib/glance/images
[root@controller ~]#

5.3 修改配置

在做完挂载操作后,此时Glance服务还不能正常使用,若使用glance image-create命令上传镜像的话,会报错,因为此时images目录的用户与用户组不是glance,而是root,需要把images目录的用户与用户组进行修改,命令如下

[root@controller ~]# cd /var/lib/glance/
[root@controller glance]# chown glance:glance images/
[root@controller glance]#

这个时候,Glance服务就可以以正常使用了,使用cirros镜像进行测试,将cirros-0.3.4-x86 64-diskimg上传至Controller节点,并上传,命令如下:

[root@controller ~]# source /etc/keystone/admin-openrc.sh 
[root@controller ~]# glance image-create --name cirros --disk-format qcow2 --container-
format bare --progress < cirros-0.3.4-x86_64-disk.img 
[=============================>] 100%
··········

可以看到上传镜像成功。查看images目录下的文件,命令如下:

[root@controller ~]# ll /var/lib/glance/images/
total 12980
-rw-r----- 1 glance glance 13287936 Dec 31 09:32 03bdf00d-a279-41fe-a2a6-0496fa0dcea7
[root@controller ~]# 

然后回到nfs-server节点,查看/mnt/test下的文件,命令如下:

[root@nfs-server ~]# ls /mnt/test/
03bdf00d-a279-41fe-a2a6-0496fa0dcea7
[root@nfs-server ~]#

二、rabbitmq服务优化

RabbitMQ的连接数是压垮消息队列的一个重要的指标。所以在平时使用OpenStack平台的过程中,如果大量的用户同时创建虚拟机,会导致云平台创建报错,其实就是消息队列服务的崩溃。 在优化方面,我们首先想到,是将RabbitMQ服务默认的连接数量改大,修改方法如下

(1) 系统级别修改

编辑/etc/sysctl.conf文件:

[root@controller ~]# vi /etc/sysctl.conf
fs.file-max = 10240

(2) 用户级别修改

用户级别修改,编辑/etc/security/limits.conf配置文件,具体命令如下:

[root@controller ~]# vi /etc/security/limits.conf           # 在最后添加以下内容:
openstack soft nofile 10240
openstack hard nofile 10240

(3) 修改rabbitmq配置:

修改RabbitMQ服务的Service配置文件rabbitmqserver.service,具体命令如下:

[root@controller ~]# vi /usr/lib/systemd/system/rabbitmq-server.service         #在service字段添加以下内容:
LimitNOFILE=10240
[root@controller ~]# systemctl daemon-reload
[root@controller ~]# systemctl restart rabbitmq-server

重启完毕后查看rabbitmq最大连接数

[root@controller ~]# rabbitmqctl status
…………
{file_descriptors,
     [{total_limit,10140},
      {total_used,79},
      {sockets_limit,9124},
      {sockets_used,77}]},

三、openstack平台开放镜像权限

(1) 创建租户

登录OpenStack平台,创建租户deyA和deyB,并且在这两个租户下各创一个用户userA和userB的普通用户,使用命令查看,命令如下:

[root@controller ~]# source /etc/keystone/admin-openrc.sh 
[root@controller ~]# openstack project create --domain demo deyA
[root@controller ~]# openstack user create --domain demo --password 123456 userA
[root@controller ~]# openstack role add --project deyA --user userA user
[root@controller ~]# openstack user create --domain demo --password 123456 userB
[root@controller ~]# openstack role add --project deyB --user userB user

使用命令查询租户列表信息和用户列表信息,命令代码如下所示:

[root@controller ~]# source /etc/keystone/admin-openrc.sh 
[root@controller ~]# openstack project list
+----------------------------------+---------+
| ID                               | Name    |
+----------------------------------+---------+
| 0b6f2d0be1d342e09edc31dc841db7a5 | admin   |
| 32bb0b4849bc405a82aed64b7c0072fe | demo    |
| 5b60063daf044c61ae4edf51cb6aeb5b | deyB    |
| 7586a4927a9b44d1957a77c5d9daeeef | deyA    |
| b47586b9fe8845c0b65ac944616cb934 | service |
+----------------------------------+---------+
[root@controller ~]# openstack user list
+----------------------------------+-------------------+
| ID                               | Name              |
+----------------------------------+-------------------+
| 89f8027475294689ae6c0183fa35bf5a | admin             |
| df883f8abb124254a4e04138e92ebad6 | demo              |
| 5f149fe240114fb5ae43e6d9ea3585c9 | glance            |
| c12e3ae6719f4145b45890b4f32b1bde | placement         |
| 214fedb287114f2d8bf09bbb665369bd | nova              |
| a22d0df83e564c17a618429a136aa46d | neutron           |
| 70fd527b01f141d091d240b17ffa7532 | cinder            |
| 38fca0a11172451ebd4fdd34bab4a62c | swift             |
| c099073d62754032937dfd422e5253a1 | heat              |
| ff8b9ec030ba4de8a7b4fd847c94c3c3 | heat_domain_admin |
| d35395e5ae554a5ea0fb5c2b5dbb2ba7 | ceilometer        |
| 90deb816e8ee4ff7ae28d342f6074127 | gnocchi           |
| 761b461915464665a29780738d9bb5fa | aodh              |
| 2d8554f24c04452c8ffa9aa216a7c484 | zun               |
| e9227d1e10c24ab2872b549157b4d376 | kuryr             |
| 6a0958e6e55e4513a5f2451db007a2cc | octavia           |
| 77bba8c0d46c44578b8831e3d704ca97 | manila            |
| 9f7da13262e44bf58c1bf29ee0318c81 | cloudkitty        |
| 38ac5cab65974983b6a01be246e665a9 | barbican          |
| 18a126b49d8d422bb5af112fad28b732 | userA             |
| baff3e161a3047628ff01b6fa3873837 | userB             |
+----------------------------------+-------------------+
[root@controller ~]# 

可以看见用户和租户都存在

(2) 上传镜像

[root@controller ~]# glance image-create --name cirros --disk-format qcow2 --container-
format bare --progress < cirros-0.3.4-x86_64-disk.img 
[=============================>] 100%
……

上传镜像后,userA和userB都不能看到该镜像。接下来做相关配置,使得A租户中的用户可以看到该镜像

(3) 权限配置

首先将镜像共享给A租户,命令格式为glance member-create<image id> <project id>,命令如下所示

[root@controller ~]# glance member-create b615c2bf-57c7-4223-8c6f-9e08d9e80609  7586a49
27a9b44d1957a77c5d9daeeef 
+--------------------------------------+----------------------------------+---------+
| Image ID                             | Member ID                        | Status  |
+--------------------------------------+----------------------------------+---------+
| b615c2bf-57c7-4223-8c6f-9e08d9e80609 | 7586a4927a9b44d1957a77c5d9daeeef | pending |
+--------------------------------------+----------------------------------+---------+
[root@controller ~]#

在共享之后,镜像的状态是pending状态,此时还需要激活镜像,命令格式为:glance member-update <image id> <member id>命令如下:

[root@controller ~]# glance member-update b615c2bf-57c7-4223-8c6f-9e08d9e80609  7586a49
27a9b44d1957a77c5d9daeeef accepted
+--------------------------------------+----------------------------------+----------+
| Image ID                             | Member ID                        | Status   |
+--------------------------------------+----------------------------------+----------+
| b615c2bf-57c7-4223-8c6f-9e08d9e80609 | 7586a4927a9b44d1957a77c5d9daeeef | accepted |
+--------------------------------------+----------------------------------+----------+
[root@controller ~]#

此时镜像的状态就变为了accepted,切换至userA账户中查看镜像列表信息,命令如下所示:

[root@controller ~]# export OS_PROJECT_NAME=deyA
[root@controller ~]# export OS_USERNAME=userA
[root@controller ~]# export OS_PASSWORD=123456
[root@controller ~]# glance image-list
+--------------------------------------+--------+
| ID                                   | Name   |
+--------------------------------------+--------+
| b615c2bf-57c7-4223-8c6f-9e08d9e80609 | cirros |
+--------------------------------------+--------+
[root@controller ~]# 

通过这种方式,可以使用管理员设置不同租户对不同镜像的访问权限。

四、openstack平台对接堡垒机

表1 IP规划表

IP主机名节点
10.26.6.85jumpserveropenstack堡垒机节点
10.26.20.75controlleropenstack controller节点
10.26.24.42 桌面化测试节点

(1) 修改主机名

[root@jumpserver ~]# hostnamectl set-hostname jumpserver

(2) 关闭防火墙和selinux

[root@jumpserver ~]# vi /etc/selinux/config 
SELINUX=disabled
[root@jumpserver ~]# setenforce 0
[root@jumpserver ~]# iptables -F
[root@jumpserver ~]# iptables -X
[root@jumpserver ~]# iptables -Z
[root@jumpserver ~]# /usr/sbin/iptables-save 
# Generated by iptables-save v1.4.21 on Sun Dec 31 11:26:38 2023
*filter
:INPUT ACCEPT [33:2740]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [17:1988]
COMMIT
# Completed on Sun Dec 31 11:26:38 2023
[root@jumpserver ~]# 

(3) 配置本地yum源

[root@jumpserver ~]# curl -O http://mirrors.douxuedu.com/competition/jumpserver.tar.gz      
[root@jumpserver ~]# tar -zxvf jumpserver.tar.gz -C /opt/
[root@jumpserver ~]# cat >> /etc/yum.repos.d/jumpserver.repo << EOF
> [jumpserver]
> name=jumpserver
> baseurl=file:///opt/jumpserver-repo
> gpgcheck=0
> enable=1
> EOF
[root@jumpserver ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
jumpserver                                                      | 2.9 kB  00:00:00     
jumpserver/primary_db                                           | 4.2 kB  00:00:00     
repo id                                 repo name                                status
jumpserver                              jumpserver                               2
repolist: 2
[root@jumpserver ~]# 

(4) 安装依赖库

安装python数据库,命令如下:

[root@jumpserver ~]# yum -y install python2
安装Docker环境,命令如下:

[root@jumpserver ~]# cp -rf /opt/docker/* /usr/bin/
[root@jumpserver ~]# chmod 775 /usr/bin/docker*
[root@jumpserver ~]# cp -rf /opt/docker.service /etc/systemd/system/
[root@jumpserver ~]# chmod 755 /etc/systemd/system/docker.service 
[root@jumpserver ~]# systemctl daemon-reload
[root@jumpserver ~]# systemctl enable docker --now
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /etc
/systemd/system/docker.service.
[root@jumpserver ~]# docker --version
Docker version 18.06.3-ce, build d7080c1
[root@jumpserver ~]# docker-compose --version
docker-compose version 1.27.4, build 40524192
[root@jumpserver ~]# 

(5) 安装Jumpserver

加载Jumpserver服务组件镜像:

[root@jumpserver ~]# cd /opt/images/
[root@jumpserver images]# sh load.sh    # 等几分钟

创建Jumpserver服务组件目录,命令如下:

[root@jumpserver images]# mkdir -p /opt/jumpserver/{core,koko,lion,mysql,nginx,redis}
[root@jumpserver images]# cp -rf /opt/config/ /opt/jumpserver/

生效环境变量static.env,使用所提供的脚本up.sh启动Jumpserver服务,命令如下:

[root@jumpserver images]# cp -rf /opt/config/ /opt/jumpserver/
[root@jumpserver images]# cd /opt/compose/
[root@jumpserver compose]# source /opt/static.env 
[root@jumpserver compose]# sh up.sh 
Creating network "jms_net" with driver "bridge"
Creating jms_mysql ... done
Creating jms_redis ... done
Creating jms_core  ... done
Creating jms_koko   ... done
Creating jms_luna   ... done
Creating jms_lion   ... done
Creating jms_lina   ... done
Creating jms_celery ... done
Creating jms_nginx  ... done
[root@jumpserver compose]# 

使用浏览器访问http://10.26.17.138,Jumpserver Web登录 (admin/admin)

1、登录成功后,会提示设置新密码

2、登录平台后,单机页面右上角下拉菜单切换中文

3、使用管理员admin用户登录Jumpserver管理平台,单击左侧导航栏,展开“资产管理“项目,选择管理用户”,单击右侧”创建”按钮

4、创建远程连接用户,用户名为root密码为”Abc1234”,单击“提交”按钮进行创建

5、选择“系统用户”,单击右侧”创建”按钮,创建系统用户,选择主机协议”SSH”,设置用户名root,密码为服务器SSH密码并单击”提交”按钮

6、单击左侧导航栏,展开”资产管理“项目,选择”资产列表”,单击右侧”创建”按钮

7、创建资产,将云平台主机 (controller) 加入资产内,管理用户选择root,节点选择Default

8、单击左侧导航栏,展开“权限管理“项目,选择"资产授权”,单击右侧”创建”按钮,创建资产授权规则

9、单击右上角管理员用户下拉菜单,选择”用户界面

10、如果未出现Default项目下的资产主机,单击收藏夹后”刷新”按钮进行刷新

11、单击左侧导航栏,选择”Web终端”进入远程连接页面

12、单击左侧Default,展开文件夹,单击controller主机,右侧成功连接主机

 

  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值