块存储服务(Cinder)部署
块存储服务(Cinder)部署
控制节点和计算节点部署配置Cinder服务。
1、控制节点安装和配置Cinder
(1)安装Cinder软件包
在 openstack-cinder
软件包中包括 cinder-api
和cinder-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打开虚拟机
输入dracut -f 进行修复
源码安装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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通