块存储服务(Cinder)部署

块存储服务(Cinder)部署

控制节点和计算节点部署配置Cinder服务。

1、控制节点安装和配置Cinder

(1)安装Cinder软件包

openstack-cinder 软件包中包括 cinder-apicinder-scheduler模块。

# 安装cinder软件包
[root@controller ~]# yum install -y openstack-cinder

# 查看cinder用户和用户组
[root@controller ~]# cat /etc/passwd | grep cinder
cinder:x:165:165:OpenStack Cinder Daemons:/var/lib/cinder:/sbin/nologin
[root@controller ~]# cat /etc/group | grep cinder
nobody:x:99:nova,cinder
cinder:x:165:cinder

(2)创建Cinder数据库并授权

# 登录数据库
[root@controller ~]# mysql -uroot -p000000

# 创建cinder数据库
MariaDB [(none)]> CREATE DATABASE cinder;
Query OK, 1 row affected (0.004 sec)

# 给cinder用户授权本地和远程访问
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY '000000';
Query OK, 0 rows affected (0.007 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY '000000'; 
Query OK, 0 rows affected (0.000 sec)

(3)修改Cinder配置文件

# 备份配置文件
[root@controller ~]# cp /etc/cinder/cinder.conf /etc/cinder/cinder.conf.bak
# 去除配置文件空行和注释
[root@controller ~]# grep -Ev '^$|#' /etc/cinder/cinder.conf.bak > /etc/cinder/cinder.conf

# 编辑配置文件
[root@controller ~]# vi /etc/cinder/cinder.conf
[DEFAULT]
auth_stategy = keystone
transport_url = rabbit://rabbitmq:000000@controller:5672

[database]
connection = mysql+pymysql://cinder:000000@controller/cinder

[keystone_authtoken]
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password 
username = cinder
password = 000000 
project_name = project
user_domain_name = Default
project_domain_name = Default

[oslo_concurrency]
lock_path = /var/lib/cinder/tmp

(4)修改Nova配置文件

Cinder组件要和Nova交互,需要修改Nova配置。

[root@controller ~]# vi /etc/nova/nova.conf
[cinder]
os_region_name = RegionOne

(5)初始化Cinder数据库

# 执行初始化操作,同步数据库
[root@controller ~]# su cinder -s /bin/sh -c "cinder-manage db sync"
Deprecated: Option "logdir" from group "DEFAULT" is deprecated. Use option "log-dir" from group "DEFAULT".

# 验证查看cinder库里的表
[root@controller ~]# mysql -uroot -p1234
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 24
Server version: 10.3.28-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use cinder;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [cinder]>  show tables;
+----------------------------+
| Tables_in_cinder           |
+----------------------------+
| attachment_specs           |
| backup_metadata            |
| backups                    |
| cgsnapshots                |
| clusters                   |
| consistencygroups          |
| default_volume_types       |
| driver_initiator_data      |
| encryption                 |
| group_snapshots            |
| group_type_projects        |
| group_type_specs           |
| group_types                |
| group_volume_type_mapping  |
| groups                     |
| image_volume_cache_entries |
| messages                   |
| migrate_version            |
| quality_of_service_specs   |
| quota_classes              |
| quota_usages               |
| quotas                     |
| reservations               |
| services                   |
| snapshot_metadata          |
| snapshots                  |
| transfers                  |
| volume_admin_metadata      |
| volume_attachment          |
| volume_glance_metadata     |
| volume_metadata            |
| volume_type_extra_specs    |
| volume_type_projects       |
| volume_types               |
| volumes                    |
| workers                    |
+----------------------------+
36 rows in set (0.000 sec)

(6)创建Cinder用户并分配角色

# 模拟登陆
[root@controller ~]# source admin-login 

# 平台创建cinder用户
[root@controller ~]# openstack user create --domain default --password 000000 cinder
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 4e17f5e1d7e144ce82cef82be00c6399 |
| name                | cinder                           |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

# 给用户cinder分配admin角色
[root@controller ~]# openstack role add --project project --user cinder admin

(7)创建Cinder服务及端点

Openstack(Train版)Cinder支持的卷是第3版本的卷。

# 创建服务
[root@controller ~]# openstack service create --name cinderv3 volumev3
+---------+----------------------------------+
| Field   | Value                            |
+---------+----------------------------------+
| enabled | True                             |
| id      | c992ddbc592f4b95aa92cf711b17451f |
| name    | cinderv3                         |
| type    | volumev3                         |
+---------+----------------------------------+

# 创建服务端点
[root@controller ~]# openstack endpoint create --region RegionOne volumev3 public http://controller:8776/v3/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | e2e4c7835fed4992b27c3830589d5d28         |
| interface    | public                                   |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | c992ddbc592f4b95aa92cf711b17451f         |
| service_name | cinderv3                                 |
| service_type | volumev3                                 |
| url          | http://controller:8776/v3/%(project_id)s |
+--------------+------------------------------------------+
[root@controller ~]# openstack endpoint create --region RegionOne volumev3 internal http://controller:8776/v3/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | 187227a35ded4b72a887481ea73c139f         |
| interface    | internal                                 |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | c992ddbc592f4b95aa92cf711b17451f         |
| service_name | cinderv3                                 |
| service_type | volumev3                                 |
| url          | http://controller:8776/v3/%(project_id)s |
+--------------+------------------------------------------+
[root@controller ~]# openstack endpoint create --region RegionOne volumev3 admin http://controller:8776/v3/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | 8e2dc38d292646daaf23814d64b7cb12         |
| interface    | admin                                    |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | c992ddbc592f4b95aa92cf711b17451f         |
| service_name | cinderv3                                 |
| service_type | volumev3                                 |
| url          | http://controller:8776/v3/%(project_id)s |
+--------------+------------------------------------------+

8)启动Cinder服务

# 重启nova服务
[root@controller ~]# systemctl restart openstack-nova-api

# 开机启动
[root@controller ~]# systemctl enable openstack-cinder-api openstack-cinder-scheduler
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-cinder-api.service to /usr/lib/systemd/system/openstack-cinder-api.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-cinder-scheduler.service to /usr/lib/systemd/system/openstack-cinder-scheduler.service.

# 立即启动
[root@controller ~]# systemctl start openstack-cinder-api openstack-cinder-scheduler

(9)检测控制节点Cinder服务

# 方法一:查看8776端口占用情况
[root@controller ~]# netstat -nutpl | grep 8776
tcp        0      0 0.0.0.0:8776            0.0.0.0:*               LISTEN      15517/python2

# 方法二:查看存储服务列表,是否处于UP状态
[root@controller ~]# openstack volume service list
+------------------+------------+------+---------+-------+----------------------------+
| Binary           | Host       | Zone | Status  | State | Updated At                 |
+------------------+------------+------+---------+-------+----------------------------+
| cinder-scheduler | controller | nova | enabled | up    | 2023-05-18T09:11:28.000000 |
+------------------+------------+------+---------+-------+----------------------------+

2、搭建存储节点

(1)为计算节点添加硬盘

在虚拟机设置页面,点击“添加”按钮——》硬件类型选择“硬盘”,点击下一步——》选默认磁盘类型,点下一步——》点选“创建新虚拟磁盘”,点下一步——》磁盘大小20G以上,分配方式任选,下一步——》点击“完成”。

(2)创建卷组

逻辑卷管理(Logical Volume Manager,LVM)是Linux环境下对磁盘分区进行管理的一种机制,它可以将几块磁盘(也称物理卷)组合起来形成一个存储池或者卷组(Volume Group)。
LVM可以每次从卷组中划分出不同大小的逻辑卷(Logical Volume)创建新的逻辑设备。
Cinder可以使用LVM来实现块设备(卷)的管理。

# 1.查看系统硬盘挂载情况
[root@compute ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   59G  0 part 
  ├─centos-root 253:0    0 38.3G  0 lvm  /
  ├─centos-swap 253:1    0    2G  0 lvm  [SWAP]
  └─centos-home 253:2    0 18.7G  0 lvm  /home
sdb               8:16   0 1000G  0 disk 
sr0              11:0    1 1024M  0 rom  

# 2.创建LVM物理卷组
# 2.1 硬盘初始化为物理卷
[root@compute ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.

# 2.2 物理卷归并为卷组
# 格式:vgcreate 卷组名  物理卷...
[root@compute ~]# vgcreate cinder-volumes /dev/sdb
  Volume group "cinder-volumes" successfully created

# 2.3 修改LVM配置
# 在配置文件中的devices部分,添加过滤器,只接受/dev/sdb
# a表示接受,r表示拒绝
[root@compute ~]# vi /etc/lvm/lvm.conf
devices {
        filter = ["a/sdb/","r/.*/"]

# 3.启动LVM元数据服务
[root@compute ~]# systemctl enable lvm2-lvmetad
[root@compute ~]# systemctl start lvm2-lvmetad

3、安装和配置存储节点

均在计算节点操作。

(1)安装Cinder相关软件包

[root@compute ~]# yum install -y openstack-cinder targetcli python-keystone
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
train                                                                  | 2.9 kB  00:00:00     
virt                                                                   | 2.9 kB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package openstack-cinder.noarch 1:15.6.0-1.el7 will be installed
--> Processing Dependency: python2-cinder = 1:15.6.0-1.el7 for package: 1:openstack-cinder-15.6.0-1.el7.noarch
--> Processing Dependency: python-rtslib for package: 1:openstack-cinder-15.6.0-1.el7.noarch
---> Package python2-keystone.noarch 1:16.0.2-1.el7 will be installed
--> Processing Dependency: python2-scrypt >= 0.8.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-pysaml2 >= 4.5.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-passlib >= 1.7.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-oauthlib >= 0.6.2 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-flask-restful >= 0.3.5 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-flask >= 1.0.2 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python-ldappool >= 2.0.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-jwt for package: 1:python2-keystone-16.0.2-1.el7.noarch
---> Package targetcli.noarch 0:2.1.53-1.el7_9 will be installed
--> Processing Dependency: python-ethtool for package: targetcli-2.1.53-1.el7_9.noarch
--> Processing Dependency: python-configshell for package: targetcli-2.1.53-1.el7_9.noarch
--> Running transaction check
---> Package python-configshell.noarch 1:1.1.26-1.el7 will be installed
--> Processing Dependency: python-urwid for package: 1:python-configshell-1.1.26-1.el7.noarch
---> Package python-ethtool.x86_64 0:0.8-8.el7 will be installed
--> Processing Dependency: libnl.so.1()(64bit) for package: python-ethtool-0.8-8.el7.x86_64
---> Package python-rtslib.noarch 0:2.1.74-1.el7_9 will be installed
--> Processing Dependency: python-kmod for package: python-rtslib-2.1.74-1.el7_9.noarch
---> Package python2-cinder.noarch 1:15.6.0-1.el7 will be installed
--> Processing Dependency: python2-swiftclient >= 3.2.0 for package: 1:python2-cinder-15.6.0-1.el7.noarch
--> Processing Dependency: python2-oauth2client >= 1.5.0 for package: 1:python2-cinder-15.6.0-1.el7.noarch
--> Processing Dependency: python2-google-api-client >= 1.4.2 for package: 1:python2-cinder-15.6.0-1.el7.noarch
--> Processing Dependency: python2-defusedxml >= 0.5.0 for package: 1:python2-cinder-15.6.0-1.el7.noarch
--> Processing Dependency: python2-etcd3gw for package: 1:python2-cinder-15.6.0-1.el7.noarch
---> Package python2-flask.noarch 1:1.0.2-1.el7 will be installed
--> Processing Dependency: python-itsdangerous for package: 1:python2-flask-1.0.2-1.el7.noarch
--> Processing Dependency: python-click for package: 1:python2-flask-1.0.2-1.el7.noarch
---> Package python2-flask-restful.noarch 0:0.3.6-7.el7 will be installed
--> Processing Dependency: python-aniso8601 for package: python2-flask-restful-0.3.6-7.el7.noarch
---> Package python2-jwt.noarch 0:1.6.1-1.el7 will be installed
---> Package python2-ldappool.noarch 0:2.4.0-2.el7 will be installed
---> Package python2-oauthlib.noarch 0:2.0.1-8.el7 will be installed
--> Processing Dependency: python-jwcrypto for package: python2-oauthlib-2.0.1-8.el7.noarch
---> Package python2-passlib.noarch 0:1.7.0-4.el7 will be installed
---> Package python2-pysaml2.noarch 0:4.6.5-1.el7 will be installed
--> Processing Dependency: python2-future for package: python2-pysaml2-4.6.5-1.el7.noarch
---> Package python2-scrypt.x86_64 0:0.8.0-2.el7 will be installed
--> Running transaction check
---> Package libnl.x86_64 0:1.1.4-3.el7 will be installed
---> Package python-aniso8601.noarch 0:0.82-3.el7 will be installed
---> Package python-click.noarch 0:6.3-1.el7 will be installed
---> Package python-jwcrypto.noarch 0:0.4.2-1.el7 will be installed
---> Package python-kmod.x86_64 0:0.9-4.el7 will be installed
---> Package python-urwid.x86_64 0:1.1.1-3.el7 will be installed
---> Package python2-defusedxml.noarch 0:0.5.0-2.el7 will be installed
---> Package python2-etcd3gw.noarch 0:0.2.5-1.el7 will be installed
---> Package python2-future.noarch 0:0.16.0-4.el7 will be installed
---> Package python2-google-api-client.noarch 0:1.4.2-4.el7 will be installed
--> Processing Dependency: python-uri-templates >= 0.6 for package: python2-google-api-client-1.4.2-4.el7.noarch
---> Package python2-itsdangerous.noarch 0:0.24-14.el7 will be installed
---> Package python2-oauth2client.noarch 0:1.5.2-3.el7.1 will be installed
--> Processing Dependency: python-gflags for package: python2-oauth2client-1.5.2-3.el7.1.noarch
---> Package python2-swiftclient.noarch 0:3.8.1-1.el7 will be installed
--> Running transaction check
---> Package python2-gflags.noarch 0:2.0-5.el7 will be installed
---> Package python2-uri-templates.noarch 0:0.6-5.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================
 Package                          Arch          Version                  Repository      Size
==============================================================================================
Installing:
 openstack-cinder                 noarch        1:15.6.0-1.el7           train           57 k
 python2-keystone                 noarch        1:16.0.2-1.el7           train          1.1 M
 targetcli                        noarch        2.1.53-1.el7_9           updates         75 k
Installing for dependencies:
 libnl                            x86_64        1.1.4-3.el7              base           128 k
 python-aniso8601                 noarch        0.82-3.el7               train           31 k
 python-click                     noarch        6.3-1.el7                train          119 k
 python-configshell               noarch        1:1.1.26-1.el7           base            68 k
 python-ethtool                   x86_64        0.8-8.el7                base            34 k
 python-jwcrypto                  noarch        0.4.2-1.el7              base            57 k
 python-kmod                      x86_64        0.9-4.el7                base            57 k
 python-rtslib                    noarch        2.1.74-1.el7_9           updates        104 k
 python-urwid                     x86_64        1.1.1-3.el7              base           654 k
 python2-cinder                   noarch        1:15.6.0-1.el7           train          3.9 M
 python2-defusedxml               noarch        0.5.0-2.el7              train           45 k
 python2-etcd3gw                  noarch        0.2.5-1.el7              train           36 k
 python2-flask                    noarch        1:1.0.2-1.el7            train          152 k
 python2-flask-restful            noarch        0.3.6-7.el7              train          117 k
 python2-future                   noarch        0.16.0-4.el7             train          798 k
 python2-gflags                   noarch        2.0-5.el7                train           60 k
 python2-google-api-client        noarch        1.4.2-4.el7              train           78 k
 python2-itsdangerous             noarch        0.24-14.el7              train           25 k
 python2-jwt                      noarch        1.6.1-1.el7              train           37 k
 python2-ldappool                 noarch        2.4.0-2.el7              train           25 k
 python2-oauth2client             noarch        1.5.2-3.el7.1            train           98 k
 python2-oauthlib                 noarch        2.0.1-8.el7              base           146 k
 python2-passlib                  noarch        1.7.0-4.el7              train          733 k
 python2-pysaml2                  noarch        4.6.5-1.el7              train          542 k
 python2-scrypt                   x86_64        0.8.0-2.el7              train           26 k
 python2-swiftclient              noarch        3.8.1-1.el7              train          164 k
 python2-uri-templates            noarch        0.6-5.el7                train           10 k

Transaction Summary
==============================================================================================
Install  3 Packages (+27 Dependent packages)

Total size: 9.3 M
Total download size: 8.1 M
Installed size: 45 M
Downloading packages:
----------------------------------------------------------------------------------------------
Total                                                          82 MB/s | 8.1 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : python2-defusedxml-0.5.0-2.el7.noarch                                     1/30 
  Installing : python2-uri-templates-0.6-5.el7.noarch                                    2/30 
  Installing : python2-jwt-1.6.1-1.el7.noarch                                            3/30 
  Installing : libnl-1.1.4-3.el7.x86_64                                                  4/30 
  Installing : python-ethtool-0.8-8.el7.x86_64                                           5/30 
  Installing : python-kmod-0.9-4.el7.x86_64                                              6/30 
  Installing : python-rtslib-2.1.74-1.el7_9.noarch                                       7/30 
  Installing : python-aniso8601-0.82-3.el7.noarch                                        8/30 
  Installing : python-jwcrypto-0.4.2-1.el7.noarch                                        9/30 
  Installing : python2-oauthlib-2.0.1-8.el7.noarch                                      10/30 
  Installing : python2-scrypt-0.8.0-2.el7.x86_64                                        11/30 
  Installing : python-urwid-1.1.1-3.el7.x86_64                                          12/30 
  Installing : 1:python-configshell-1.1.26-1.el7.noarch                                 13/30 
  Installing : python2-ldappool-2.4.0-2.el7.noarch                                      14/30 
  Installing : python2-etcd3gw-0.2.5-1.el7.noarch                                       15/30 
  Installing : python2-future-0.16.0-4.el7.noarch                                       16/30 
  Installing : python2-pysaml2-4.6.5-1.el7.noarch                                       17/30 
  Installing : python2-passlib-1.7.0-4.el7.noarch                                       18/30 
  Installing : python2-swiftclient-3.8.1-1.el7.noarch                                   19/30 
  Installing : python-click-6.3-1.el7.noarch                                            20/30 
  Installing : python2-itsdangerous-0.24-14.el7.noarch                                  21/30 
  Installing : 1:python2-flask-1.0.2-1.el7.noarch                                       22/30 
  Installing : python2-flask-restful-0.3.6-7.el7.noarch                                 23/30 
  Installing : python2-gflags-2.0-5.el7.noarch                                          24/30 
  Installing : python2-oauth2client-1.5.2-3.el7.1.noarch                                25/30 
  Installing : python2-google-api-client-1.4.2-4.el7.noarch                             26/30 
  Installing : 1:python2-cinder-15.6.0-1.el7.noarch                                     27/30 
  Installing : 1:openstack-cinder-15.6.0-1.el7.noarch                                   28/30 
  Installing : 1:python2-keystone-16.0.2-1.el7.noarch                                   29/30 
  Installing : targetcli-2.1.53-1.el7_9.noarch                                          30/30 
  Verifying  : python-ethtool-0.8-8.el7.x86_64                                           1/30 
  Verifying  : python2-gflags-2.0-5.el7.noarch                                           2/30 
  Verifying  : python2-oauthlib-2.0.1-8.el7.noarch                                       3/30 
  Verifying  : targetcli-2.1.53-1.el7_9.noarch                                           4/30 
  Verifying  : python2-itsdangerous-0.24-14.el7.noarch                                   5/30 
  Verifying  : python-click-6.3-1.el7.noarch                                             6/30 
  Verifying  : python2-oauth2client-1.5.2-3.el7.1.noarch                                 7/30 
  Verifying  : python2-google-api-client-1.4.2-4.el7.noarch                              8/30 
  Verifying  : 1:python2-keystone-16.0.2-1.el7.noarch                                    9/30 
  Verifying  : python2-swiftclient-3.8.1-1.el7.noarch                                   10/30 
  Verifying  : python2-passlib-1.7.0-4.el7.noarch                                       11/30 
  Verifying  : python2-future-0.16.0-4.el7.noarch                                       12/30 
  Verifying  : python2-etcd3gw-0.2.5-1.el7.noarch                                       13/30 
  Verifying  : python2-ldappool-2.4.0-2.el7.noarch                                      14/30 
  Verifying  : 1:python2-cinder-15.6.0-1.el7.noarch                                     15/30 
  Verifying  : python-urwid-1.1.1-3.el7.x86_64                                          16/30 
  Verifying  : python2-pysaml2-4.6.5-1.el7.noarch                                       17/30 
  Verifying  : python2-scrypt-0.8.0-2.el7.x86_64                                        18/30 
  Verifying  : 1:python2-flask-1.0.2-1.el7.noarch                                       19/30 
  Verifying  : python-jwcrypto-0.4.2-1.el7.noarch                                       20/30 
  Verifying  : python-aniso8601-0.82-3.el7.noarch                                       21/30 
  Verifying  : python-kmod-0.9-4.el7.x86_64                                             22/30 
  Verifying  : 1:openstack-cinder-15.6.0-1.el7.noarch                                   23/30 
  Verifying  : 1:python-configshell-1.1.26-1.el7.noarch                                 24/30 
  Verifying  : libnl-1.1.4-3.el7.x86_64                                                 25/30 
  Verifying  : python2-flask-restful-0.3.6-7.el7.noarch                                 26/30 
  Verifying  : python-rtslib-2.1.74-1.el7_9.noarch                                      27/30 
  Verifying  : python2-defusedxml-0.5.0-2.el7.noarch                                    28/30 
  Verifying  : python2-jwt-1.6.1-1.el7.noarch                                           29/30 
  Verifying  : python2-uri-templates-0.6-5.el7.noarch                                   30/30 

Installed:
  openstack-cinder.noarch 1:15.6.0-1.el7        python2-keystone.noarch 1:16.0.2-1.el7       
  targetcli.noarch 0:2.1.53-1.el7_9            

Dependency Installed:
  libnl.x86_64 0:1.1.4-3.el7                      python-aniso8601.noarch 0:0.82-3.el7       
  python-click.noarch 0:6.3-1.el7                 python-configshell.noarch 1:1.1.26-1.el7   
  python-ethtool.x86_64 0:0.8-8.el7               python-jwcrypto.noarch 0:0.4.2-1.el7       
  python-kmod.x86_64 0:0.9-4.el7                  python-rtslib.noarch 0:2.1.74-1.el7_9      
  python-urwid.x86_64 0:1.1.1-3.el7               python2-cinder.noarch 1:15.6.0-1.el7       
  python2-defusedxml.noarch 0:0.5.0-2.el7         python2-etcd3gw.noarch 0:0.2.5-1.el7       
  python2-flask.noarch 1:1.0.2-1.el7              python2-flask-restful.noarch 0:0.3.6-7.el7 
  python2-future.noarch 0:0.16.0-4.el7            python2-gflags.noarch 0:2.0-5.el7          
  python2-google-api-client.noarch 0:1.4.2-4.el7  python2-itsdangerous.noarch 0:0.24-14.el7  
  python2-jwt.noarch 0:1.6.1-1.el7                python2-ldappool.noarch 0:2.4.0-2.el7      
  python2-oauth2client.noarch 0:1.5.2-3.el7.1     python2-oauthlib.noarch 0:2.0.1-8.el7      
  python2-passlib.noarch 0:1.7.0-4.el7            python2-pysaml2.noarch 0:4.6.5-1.el7       
  python2-scrypt.x86_64 0:0.8.0-2.el7             python2-swiftclient.noarch 0:3.8.1-1.el7   
  python2-uri-templates.noarch 0:0.6-5.el7       

Complete!

(2)配置文件修改

# 备份配置文件
[root@compute ~]# cp /etc/cinder/cinder.conf /etc/cinder/cinder.conf.bak
# 去除空行和注释
[root@compute ~]# grep -Ev '^$|#' /etc/cinder/cinder.conf.bak > /etc/cinder/cinder.conf

# 修改配置文件
# 配置文件中“volume_group”的值应和“创建LVM物理卷组”部分创建的卷组名一致:cinder-volumes
[root@compute ~]# vi /etc/cinder/cinder.conf
[DEFAULT]
auth_stategy = keystone
transport_url = rabbit://rabbitmq:000000@controller:5672
enabled_backends = lvm
glance_api_servers = http://controller:9292

[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
target_protocol = iscsi
target_helper = lioadm

[database]
connection = mysql+pymysql://cinder:000000@controller/cinder

[keystone_authtoken]
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password 
username = cinder
password = 000000 
project_name = project
user_domain_name = Default
project_domain_name = Default

[oslo_concurrency]
lock_path = /var/lib/cinder/tmp

(3)存储节点启动cinder服务

[root@compute opt]# systemctl enable openstack-cinder-volume target
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-cinder-volume.service to /usr/lib/systemd/system/openstack-cinder-volume.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service.
[root@compute opt]# systemctl start openstack-cinder-volume target

4、检查Cinder服务

# 方法一:查看存储服务列表
# 查看Cinder服务中各个模块的服务状态
[root@controller ~]# openstack volume service list
+------------------+-------------+------+---------+-------+----------------------------+
| Binary           | Host        | Zone | Status  | State | Updated At                 |
+------------------+-------------+------+---------+-------+----------------------------+
| cinder-scheduler | controller  | nova | enabled | up    | 2023-05-18T09:26:28.000000 |
| cinder-volume    | compute@lvm | nova | enabled | up    | 2023-05-18T09:26:35.000000 |
+------------------+-------------+------+---------+-------+----------------------------+

5、用cinder创建卷

(1)命令模式创建卷

在控制节点执行命令。

[root@controller ~]# openstack volume create --size 8 volume1
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attachments         | []                                   |
| availability_zone   | nova                                 |
| bootable            | false                                |
| consistencygroup_id | None                                 |
| created_at          | 2023-05-18T09:28:02.000000           |
| description         | None                                 |
| encrypted           | False                                |
| id                  | 8b12c4dd-b31b-436a-8f74-857c0a7fa817 |
| migration_status    | None                                 |
| multiattach         | False                                |
| name                | volume1                              |
| properties          |                                      |
| replication_status  | None                                 |
| size                | 8                                    |
| snapshot_id         | None                                 |
| source_volid        | None                                 |
| status              | creating                             |
| type                | __DEFAULT__                          |
| updated_at          | None                                 |
| user_id             | 93a47b4afdc3448e876d1d2032f8fcba     |
+---------------------+--------------------------------------+
[root@controller ~]# openstack volume list
+--------------------------------------+---------+-----------+------+-------------+
| ID                                   | Name    | Status    | Size | Attached to |
+--------------------------------------+---------+-----------+------+-------------+
| 8b12c4dd-b31b-436a-8f74-857c0a7fa817 | volume1 | available |    8 |             |
+--------------------------------------+---------+-----------+------+-------------+

(2)命令模式查看

[root@compute ~]# lsblk
NAME                                                                   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                                                                      8:0    0   60G  0 disk 
├─sda1                                                                   8:1    0    1G  0 part /boot
└─sda2                                                                   8:2    0   59G  0 part 
  ├─centos-root                                                        253:0    0 38.3G  0 lvm  /
  ├─centos-swap                                                        253:1    0    2G  0 lvm  [SWAP]
  └─centos-home                                                        253:2    0 18.7G  0 lvm  /home
sdb                                                                      8:16   0 1000G  0 disk 
├─cinder--volumes-cinder--volumes--pool_tmeta                          253:3    0  120M  0 lvm  
│ └─cinder--volumes-cinder--volumes--pool-tpool                        253:5    0  950G  0 lvm  
│   ├─cinder--volumes-cinder--volumes--pool                            253:6    0  950G  1 lvm  
│   └─cinder--volumes-volume--8b12c4dd--b31b--436a--8f74--857c0a7fa817 253:7    0    8G  0 lvm  
└─cinder--volumes-cinder--volumes--pool_tdata                          253:4    0  950G  0 lvm  
  └─cinder--volumes-cinder--volumes--pool-tpool                        253:5    0  950G  0 lvm  
    ├─cinder--volumes-cinder--volumes--pool                            253:6    0  950G  1 lvm  
    └─cinder--volumes-volume--8b12c4dd--b31b--436a--8f74--857c0a7fa817 253:7    0    8G  0 lvm  
sr0                                                                     11:0    1 1024M  0 rom  
[root@compute ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x50178fee.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
Partition number (1-4, default 1): 
First sector (2048-2097151999, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151999, default 2097151999): 
Using default value 2097151999
Partition 1 of type Linux and of size 1000 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@compute ~]# partprobe
[root@compute ~]# lsblk
NAME                                                                   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                                                                      8:0    0   60G  0 disk 
├─sda1                                                                   8:1    0    1G  0 part /boot
└─sda2                                                                   8:2    0   59G  0 part 
  ├─centos-root                                                        253:0    0 38.3G  0 lvm  /
  ├─centos-swap                                                        253:1    0    2G  0 lvm  [SWAP]
  └─centos-home                                                        253:2    0 18.7G  0 lvm  /home
sdb                                                                      8:16   0 1000G  0 disk 
├─sdb1                                                                   8:17   0 1000G  0 part 
├─cinder--volumes-cinder--volumes--pool_tmeta                          253:3    0  120M  0 lvm  
│ └─cinder--volumes-cinder--volumes--pool-tpool                        253:5    0  950G  0 lvm  
│   ├─cinder--volumes-cinder--volumes--pool                            253:6    0  950G  1 lvm  
│   └─cinder--volumes-volume--8b12c4dd--b31b--436a--8f74--857c0a7fa817 253:7    0    8G  0 lvm  
└─cinder--volumes-cinder--volumes--pool_tdata                          253:4    0  950G  0 lvm  
  └─cinder--volumes-cinder--volumes--pool-tpool                        253:5    0  950G  0 lvm  
    ├─cinder--volumes-cinder--volumes--pool                            253:6    0  950G  1 lvm  
    └─cinder--volumes-volume--8b12c4dd--b31b--436a--8f74--857c0a7fa817 253:7    0    8G  0 lvm  
sr0                                                                     11:0    1 1024M  0 rom  

镜像制作与使用

镜像的制作

[root@controller ~]# ls
admin            centos-7.vmdk                 --description  root.pub
anaconda-ks.cfg  cirros-0.5.1-x86_64-disk.img  root
[root@controller ~]# glance image-create --name "centos-7.vmdk" \
>   --file centos-7.vmdk \
>   --disk-format vmdk --container-format bare \
>   --visibility=public
+------------------+----------------------------------------------------------------------------------+
| Property         | Value                                                                            |
+------------------+----------------------------------------------------------------------------------+
| checksum         | f35186717f4bce4e3c4fab95a536c2f0                                                 |
| container_format | bare                                                                             |
| created_at       | 2023-05-21T02:11:39Z                                                             |
| disk_format      | vmdk                                                                             |
| id               | 6e941ab8-248e-48ea-b5af-d6ce1453e83e                                             |
| min_disk         | 0                                                                                |
| min_ram          | 0                                                                                |
| name             | centos-7.vmdk                                                                    |
| os_hash_algo     | sha512                                                                           |
| os_hash_value    | a95fa9401e026c639b3d85571a992afab4a71753f1c1fc2ac3543b12959cac74e68f311662ececfe |
|                  | d9afaca62d56cbcd30ea67b84a45e8645ca7e3ad64e9e63a                                 |
| os_hidden        | False                                                                            |
| owner            | 63ad566b5c6b455082ec997c1d2b0488                                                 |
| protected        | False                                                                            |
| size             | 1389428736                                                                       |
| status           | active                                                                           |
| tags             | []                                                                               |
| updated_at       | 2023-05-21T02:12:59Z                                                             |
| virtual_size     | 21474836480                                                                      |
| visibility       | public                                                                           |
+------------------+----------------------------------------------------------------------------------+

查看镜像

[root@controller ~]# openstack image list 
+--------------------------------------+---------------+--------+
| ID                                   | Name          | Status |
+--------------------------------------+---------------+--------+
| 6e941ab8-248e-48ea-b5af-d6ce1453e83e | centos-7.vmdk | active |
| 253665d4-78d0-4da5-8b12-148ac3f44ffa | cirros        | active |
+--------------------------------------+---------------+--------+

创建框架

[root@controller ~]# openstack flavor create --id 1 --vcpus 1 --ram 1024 --disk 20 centos-7
+----------------------------+----------+
| Field                      | Value    |
+----------------------------+----------+
| OS-FLV-DISABLED:disabled   | False    |
| OS-FLV-EXT-DATA:ephemeral  | 0        |
| disk                       | 20       |
| id                         | 1        |
| name                       | centos-7 |
| os-flavor-access:is_public | True     |
| properties                 |          |
| ram                        | 1024     |
| rxtx_factor                | 1.0      |
| swap                       |          |
| vcpus                      | 1        |
+----------------------------+----------+

[root@controller ~]# openstack flavor list
+----+----------+------+------+-----------+-------+-----------+
| ID | Name     |  RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+----------+------+------+-----------+-------+-----------+
| 0  | m1.nano  | 1024 |    1 |         0 |     1 | True      |
| 1  | centos-7 | 1024 |   20 |         0 |     1 | True      |
+----+----------+------+------+-----------+-------+-----------+

删除安全组

[root@controller ~]# openstack security group rule list       
+--------------------------------------+-------------+-----------+-----------+------------+--------------------------------------+--------------------------------------+
| ID                                   | IP Protocol | Ethertype | IP Range  | Port Range | Remote Security Group                | Security Group                       |
+--------------------------------------+-------------+-----------+-----------+------------+--------------------------------------+--------------------------------------+
| 0364bea9-202c-4d76-8560-d0e7693d1376 | None        | IPv4      | 0.0.0.0/0 |            | 12d9320e-6ba9-415b-b348-9c9630d13242 | 12d9320e-6ba9-415b-b348-9c9630d13242 |
| 0950842b-37fb-45b2-9517-e7fd6062957f | None        | IPv6      | ::/0      |            | None                                 | 3f6ebe18-07aa-45a2-b22c-ada8d44fb3e7 |
| 45ca44a8-a926-4926-91ee-b54cfbc218a0 | icmp        | IPv4      | 0.0.0.0/0 |            | None                                 | 3f6ebe18-07aa-45a2-b22c-ada8d44fb3e7 |
| 62bada00-8f87-400d-8f6b-938b807e4416 | None        | IPv4      | 0.0.0.0/0 |            | 3f6ebe18-07aa-45a2-b22c-ada8d44fb3e7 | 3f6ebe18-07aa-45a2-b22c-ada8d44fb3e7 |
| 6d901d00-3364-4bef-b9d3-8cdd2752869d | None        | IPv6      | ::/0      |            | 12d9320e-6ba9-415b-b348-9c9630d13242 | 12d9320e-6ba9-415b-b348-9c9630d13242 |
| a16f7b27-79c5-4936-9853-29ea86ce1861 | tcp         | IPv4      | 0.0.0.0/0 | 22:22      | None                                 | 3f6ebe18-07aa-45a2-b22c-ada8d44fb3e7 |
| c19a93a0-cd37-494b-a51a-a0d67d3debc0 | None        | IPv4      | 0.0.0.0/0 |            | None                                 | 12d9320e-6ba9-415b-b348-9c9630d13242 |
| cae2b794-8213-4b0b-b4ff-44a12d4c9b51 | None        | IPv6      | ::/0      |            | 3f6ebe18-07aa-45a2-b22c-ada8d44fb3e7 | 3f6ebe18-07aa-45a2-b22c-ada8d44fb3e7 |
| eed312e7-0bcc-4b6b-bd83-3d2e0b679019 | None        | IPv6      | ::/0      |            | None                                 | 12d9320e-6ba9-415b-b348-9c9630d13242 |
| f789119c-aa36-4c25-bbc7-da85e2b98801 | None        | IPv4      | 0.0.0.0/0 |            | None                                 | 3f6ebe18-07aa-45a2-b22c-ada8d44fb3e7 |
+--------------------------------------+-------------+-----------+-----------+------------+--------------------------------------+--------------------------------------+
[root@controller ~]# openstack security group list     
+--------------------------------------+---------+------------------------+----------------------------------+------+
| ID                                   | Name    | Description            | Project                          | Tags |
+--------------------------------------+---------+------------------------+----------------------------------+------+
| 12d9320e-6ba9-415b-b348-9c9630d13242 | default | Default security group | 8e0100a8907147a6bbaffda599edeffc | []   |
| 3f6ebe18-07aa-45a2-b22c-ada8d44fb3e7 | default | Default security group | 63ad566b5c6b455082ec997c1d2b0488 | []   |
+--------------------------------------+---------+------------------------+----------------------------------+------+
[root@controller ~]# openstack security group delete 12d9320e-6ba9-415b-b348-9c9630d13242
[root@controller ~]# openstack security group list
+--------------------------------------+---------+------------------------+----------------------------------+------+
| ID                                   | Name    | Description            | Project                          | Tags |
+--------------------------------------+---------+------------------------+----------------------------------+------+
| 3f6ebe18-07aa-45a2-b22c-ada8d44fb3e7 | default | Default security group | 63ad566b5c6b455082ec997c1d2b0488 | []   |
+--------------------------------------+---------+------------------------+----------------------------------+------+

| 3f6ebe18-07aa-45a2-b22c-ada8d44fb3e7 | default | Default security group | 63ad566b5c6b455082ec997c1d2b0488 | []   |
+--------------------------------------+---------+------------------------+----------------------------------+------+

通过镜像创建虚拟机

[root@controller ~]# openstack server create --flavor centos-7 --image centos-7.vmdk --nic net-id=e64bd7e0-8d1a-4e6c-b4d5-0789a92f485f --security-group 3f6ebe18-07aa-45a2-b22c-ada8d44fb3e7 --key-name mykey provider-instance
+-------------------------------------+------------------------------------------------------+
| Field                               | Value                                                |
+-------------------------------------+------------------------------------------------------+
| OS-DCF:diskConfig                   | MANUAL                                               |
| OS-EXT-AZ:availability_zone         |                                                      |
| OS-EXT-SRV-ATTR:host                | None                                                 |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None                                                 |
| OS-EXT-SRV-ATTR:instance_name       |                                                      |
| OS-EXT-STS:power_state              | NOSTATE                                              |
| OS-EXT-STS:task_state               | scheduling                                           |
| OS-EXT-STS:vm_state                 | building                                             |
| OS-SRV-USG:launched_at              | None                                                 |
| OS-SRV-USG:terminated_at            | None                                                 |
| accessIPv4                          |                                                      |
| accessIPv6                          |                                                      |
| addresses                           |                                                      |
| adminPass                           | bomeGd4dzZUh                                         |
| config_drive                        |                                                      |
| created                             | 2023-05-21T02:43:58Z                                 |
| flavor                              | centos-7 (1)                                         |
| hostId                              |                                                      |
| id                                  | 9ec87947-9e03-46cb-b13b-61c4b2ec015a                 |
| image                               | centos-7.vmdk (6e941ab8-248e-48ea-b5af-d6ce1453e83e) |
| key_name                            | mykey                                                |
| name                                | provider-instance                                    |
| progress                            | 0                                                    |
| project_id                          | 63ad566b5c6b455082ec997c1d2b0488                     |
| properties                          |                                                      |
| security_groups                     | name='3f6ebe18-07aa-45a2-b22c-ada8d44fb3e7'          |
| status                              | BUILD                                                |
| updated                             | 2023-05-21T02:44:00Z                                 |
| user_id                             | 008832da608d460293ee2d19e2fdd70c                     |
| volumes_attached                    |                                                      |
+-------------------------------------+------------------------------------------------------+
[root@controller ~]# openstack server list
+--------------------------------------+-------------------+--------+-------------------------+---------------+----------+
| ID                                   | Name              | Status | Networks                | Image         | Flavor   |
+--------------------------------------+-------------------+--------+-------------------------+---------------+----------+
| 9ec87947-9e03-46cb-b13b-61c4b2ec015a | provider-instance | ACTIVE | provider=192.168.130.47 | centos-7.vmdk | centos-7 |
| 290a79a2-6f7c-4fb1-a5dd-f660aef3f6ea | provider          | ACTIVE | provider=192.168.130.41 | cirros        | m1.nano  |
+--------------------------------------+-------------------+--------+-------------------------+---------------+----------+

用vnc打开虚拟机

image-20230521182601500

输入dracut -f 进行修复

image-20230521182802406

源码安装Apache

1,进官网下载安装包

https://archive.apache.org/dist/

下载3个包:apr,apr-util,httpd
再此之前,虚拟机需先安装wget和vim
#安装apr
[root@localhost ~]# wget https://archive.apache.org/dist/apr/apr-1.7.4.tar.gz
--2023-05-20 15:32:23--  https://archive.apache.org/dist/apr/apr-1.7.4.tar.gz
Resolving archive.apache.org (archive.apache.org)... 65.108.204.189, 2a01:4f9:1a:a084::2
Connecting to archive.apache.org (archive.apache.org)|65.108.204.189|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1122147 (1.1M) [application/x-gzip]
Saving to: ‘apr-1.7.4.tar.gz’

100%[===================================================================>] 1,122,147   77.9KB/s   in 16s    

2023-05-20 15:32:40 (66.6 KB/s) - ‘apr-1.7.4.tar.gz’ saved [1122147/1122147]

#安装apr-util
[root@localhost ~]# wget https://archive.apache.org/dist/apr/apr-util-1.6.3.tar.gz
--2023-05-20 15:34:31--  https://archive.apache.org/dist/apr/apr-util-1.6.3.tar.gz
Resolving archive.apache.org (archive.apache.org)... 65.108.204.189, 2a01:4f9:1a:a084::2
Connecting to archive.apache.org (archive.apache.org)|65.108.204.189|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 556623 (544K) [application/x-gzip]
Saving to: ‘apr-util-1.6.3.tar.gz’

100%[===================================================================>] 556,623      223KB/s   in 2.4s   

2023-05-20 15:34:35 (223 KB/s) - ‘apr-util-1.6.3.tar.gz’ saved [556623/556623]

#安装httpd
[root@localhost ~]# wget https://archive.apache.org/dist/httpd/httpd-2.4.57.tar.gz
--2023-05-20 15:36:32--  https://archive.apache.org/dist/httpd/httpd-2.4.57.tar.gz
Resolving archive.apache.org (archive.apache.org)... 65.108.204.189, 2a01:4f9:1a:a084::2
Connecting to archive.apache.org (archive.apache.org)|65.108.204.189|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9773385 (9.3M) [application/x-gzip]
Saving to: ‘httpd-2.4.57.tar.gz’

100%[===================================================================>] 9,773,385    147KB/s   in 1m 47s 

2023-05-20 15:38:20 (89.2 KB/s) - ‘httpd-2.4.57.tar.gz’ saved [9773385/9773385]

2,安装开发环境

#创建一个系统用户
[root@localhost ~]# useradd -r -M -s /sbin/nologin apache
#解压安装包
[root@localhost ~]# tar xf apr-1.7.4.tar.gz 
[root@localhost ~]# tar xf apr-util-1.6.3.tar.gz 
[root@localhost ~]# tar xf httpd-2.4.57.tar.gz 
[root@localhost ~]# ls
anaconda-ks.cfg  apr-1.7.4.tar.gz  apr-util-1.6.3.tar.gz  httpd-2.4.57.tar.gz
apr-1.7.4        apr-util-1.6.3    httpd-2.4.57
#安装编译环境
[root@localhost ~]# yum -y install gcc gcc-c++ make、
#安装所需包
[root@localhost ~]# yum -y install openssl-devel pcre-devel expat-devel libtool

安装apr,执行configure脚本,make,make install命令
#进入apr解压目录
[root@localhost ~]# cd apr-1.7.4
[root@localhost apr-1.7.4]# ls
apr-config.in  atomic            config.layout  file_io     LICENSE       network_io     README.cmake  time
apr.dep        build             configure      helpers     locks         NOTICE         shmem         tools
apr.dsp        buildconf         configure.in   include     Makefile.in   NWGNUmakefile  strings       user
apr.dsw        build.conf        docs           libapr.dep  Makefile.win  passwd         support
apr.mak        build-outputs.mk  dso            libapr.dsp  memory        poll           tables
apr.pc.in      CHANGES           emacs-mode     libapr.mak  misc          random         test
apr.spec       CMakeLists.txt    encoding       libapr.rc   mmap          README         threadproc

#安装到/usr/local下面,在此之前,先要配置一下configure,进到文件里搜cfgfile
[root@localhost apr-1.7.4]# vim configure

    cfgfile=${ofile}T
    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
    $RM "$cfgfile"				#删除这一行或者注释

[root@localhost apr-1.7.4]# ./configure --prefix=/usr/local/apr
......			#不出现报错信息即为成功
[root@localhost apr-1.7.4]# ls
apr-1-config   apr.mak    build             CMakeLists.txt  configure     encoding    libapr.dsp  locks         misc           passwd        shmem    threadproc
apr-config.in  apr.pc     buildconf         config.layout   configure.in  file_io     libapr.mak  Makefile      mmap           poll          strings  time
apr.dep        apr.pc.in  build.conf        config.log      docs          helpers     libapr.rc   Makefile.in   network_io     random        support  tools
apr.dsp        apr.spec   build-outputs.mk  config.nice     dso           include     libtool     Makefile.win  NOTICE         README        tables   user
apr.dsw        atomic     CHANGES           config.status   emacs-mode    libapr.dep  LICENSE     memory        NWGNUmakefile  README.cmake  test
#会出现一个Makefile文件

#执行make和make install
[root@localhost apr-1.7.4]# make && make install
......			#不出现报错信息即为成功

#查看/usr/local/下是否有apr目录
[root@localhost apr-1.7.4]# ll /usr/local/
total 0
drwxr-xr-x  6 root root 58 May 20 16:44 apr
drwxr-xr-x. 2 root root  6 Apr 11  2018 bin
drwxr-xr-x. 2 root root  6 Apr 11  2018 etc
drwxr-xr-x. 2 root root  6 Apr 11  2018 games
drwxr-xr-x. 2 root root  6 Apr 11  2018 include
drwxr-xr-x. 2 root root  6 Apr 11  2018 lib
drwxr-xr-x. 2 root root  6 Apr 11  2018 lib64
drwxr-xr-x. 2 root root  6 Apr 11  2018 libexec
drwxr-xr-x. 2 root root  6 Apr 11  2018 sbin
drwxr-xr-x. 5 root root 49 May 19 14:13 share
drwxr-xr-x. 2 root root  6 Apr 11  2018 src
安装apr-util
#注意,这里要指定apr的目录路径
[root@localhost ~]# cd apr-util-1.6.3
[root@localhost apr-util-1.6.3]# ls
aprutil.dep     build             configure.in       include         Makefile.win    redis
aprutil.dsp     buildconf         crypto             ldap            memcache        renames_pending
aprutil.dsw     build.conf        dbd                libaprutil.dep  misc            strmatch
aprutil.mak     build-outputs.mk  dbm                libaprutil.dsp  NOTICE          test
apr-util.pc.in  CHANGES           docs               libaprutil.mak  NWGNUmakefile   uri
apr-util.spec   CMakeLists.txt    encoding           libaprutil.rc   README          xlate
apu-config.in   config.layout     export_vars.sh.in  LICENSE         README.cmake    xml
buckets         configure         hooks              Makefile.in     README.FREETDS
[root@localhost apr-util-1.6.3]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
......			#不出现报错信息即为成功

#执行make和make install
[root@localhost apr-util-1.6.3]# make && make install
......			#不出现报错信息即为成功

#查看/usr/local/下是否有apr-util目录
[root@localhost apr-util-1.6.3]# ll /usr/local/
total 0
drwxr-xr-x  6 root root 58 May 20 16:44 apr
drwxr-xr-x  5 root root 43 May 20 16:53 apr-util
drwxr-xr-x. 2 root root  6 Apr 11  2018 bin
drwxr-xr-x. 2 root root  6 Apr 11  2018 etc
drwxr-xr-x. 2 root root  6 Apr 11  2018 games
drwxr-xr-x. 2 root root  6 Apr 11  2018 include
drwxr-xr-x. 2 root root  6 Apr 11  2018 lib
drwxr-xr-x. 2 root root  6 Apr 11  2018 lib64
drwxr-xr-x. 2 root root  6 Apr 11  2018 libexec
drwxr-xr-x. 2 root root  6 Apr 11  2018 sbin
drwxr-xr-x. 5 root root 49 May 19 14:13 share
drwxr-xr-x. 2 root root  6 Apr 11  2018 src
安装apache
[root@localhost ~]# cd httpd-2.4.57
[root@localhost httpd-2.4.57]# ls
ABOUT_APACHE     BuildAll.dsp     configure     httpd.spec      libhttpd.mak   os                srclib
acinclude.m4     BuildBin.dsp     configure.in  include         LICENSE        README            support
Apache-apr2.dsw  buildconf        docs          INSTALL         Makefile.in    README.CHANGES    test
Apache.dsw       CHANGES          emacs-style   InstallBin.dsp  Makefile.win   README.cmake      VERSIONING
apache_probes.d  changes-entries  httpd.dep     LAYOUT          modules        README.platforms
ap.d             CMakeLists.txt   httpd.dsp     libhttpd.dep    NOTICE         ROADMAP
build            config.layout    httpd.mak     libhttpd.dsp    NWGNUmakefile  server

#选项有点多,不要敲错了
[root@localhost httpd-2.4.57]# ./configure --prefix=/usr/local/apache --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
......			#不出现报错信息即为成功

#执行make和make install命令
[root@localhost httpd-2.4.57]# make && make install
......			#不出现报错信息即为成功

##查看/usr/local/下是否有apache目录
[root@localhost httpd-2.4.57]# ll /usr/local/
total 0
drwxr-xr-x  14 root root 164 May 20 17:03 apache
drwxr-xr-x   6 root root  58 May 20 16:44 apr
drwxr-xr-x   5 root root  43 May 20 16:53 apr-util
drwxr-xr-x.  2 root root   6 Apr 11  2018 bin
drwxr-xr-x.  2 root root   6 Apr 11  2018 etc
drwxr-xr-x.  2 root root   6 Apr 11  2018 games
drwxr-xr-x.  2 root root   6 Apr 11  2018 include
drwxr-xr-x.  2 root root   6 Apr 11  2018 lib
drwxr-xr-x.  2 root root   6 Apr 11  2018 lib64
drwxr-xr-x.  2 root root   6 Apr 11  2018 libexec
drwxr-xr-x.  2 root root   6 Apr 11  2018 sbin
drwxr-xr-x.  5 root root  49 May 19 14:13 share
drwxr-xr-x.  2 root root   6 Apr 11  2018 src
配置apache环境变量
[root@localhost ~]# vi /etc/profile.d/httpd.sh
export PATH=/usr/local/apache/bin:$PATH

[root@localhost ~]# source /etc/profile.d/httpd.sh 
[root@localhost ~]# echo $PATH
/usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@localhost ~]# ls /usr/local/apache/bin/
ab         apxs      dbmmanage  envvars-std  htcacheclean  htdigest  httpd      logresolve
apachectl  checkgid  envvars    fcgistarter  htdbm         htpasswd  httxt2dbm  rotatelogs
修改apache配置文件,开启httpd服务
 #开启80端口
 [root@localhost ~]# cd /usr/local/apache/
[root@localhost apache]# ls
bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  man  manual  modules
[root@localhost apache]# cd conf/
[root@localhost conf]# ls
extra  httpd.conf  magic  mime.types  original
[root@localhost conf]# vim httpd.conf 

 ServerName www.example.com:80	   #去掉注释,这一行在203,命令模式set nu可显示行号

#启动服务
[root@localhost ~]# apachectl start
[root@localhost ~]# ss -antl
State       Recv-Q Send-Q         Local Address:Port                        Peer Address:Port              
LISTEN      0      128                        *:22                                     *:*                  
LISTEN      0      100                127.0.0.1:25                                     *:*                  
LISTEN      0      128                       :::80                                   :::*                  
LISTEN      0      128                       :::22                                    :::*                  
LISTEN      0      100                      ::1:25                                    :::*  
关闭防火墙和selinux
[root@localhost ~]# systemctl disable --now firewalld

[root@localhost ~]# vi /etc/selinux/config 

SELINUX=disabled

apache的网页文件在/usr/local/apache/htdocs里面
[root@localhost ~]# cat /usr/local/apache/htdocs/index.html 
<html><body><h1>It works!</h1></body></html>
posted @   雙_木  阅读(585)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示