Ubuntu22.4 OpenStack 服务自启动配置与检查完整指南

一、服务自启动检查与配置

检查当前服务自启状态
# 查看所有 OpenStack 相关服务的开机自启状态
sudo systemctl list-unit-files | grep -E 'neutron|nova|glance|keystone|cinder|heat|horizon|apache2|mysql|rabbitmq'

二、配置服务开机自启

1. 原生 OpenStack 服务(非 DevStack)
# 启用所有核心服务
sudo systemctl enable mysql rabbitmq-server apache2 \
  keystone glance-api nova-api nova-compute \
  neutron-server neutron-l3-agent neutron-dhcp-agent neutron-metadata-agent \
  cinder-api cinder-scheduler cinder-volume
2. DevStack 环境服务自启

DevStack 默认使用 screen 管理服务,需手动创建 Systemd 单元文件。

2.1 创建服务单元文件示例
# 示例:Nova 服务
sudo tee /etc/systemd/system/devstack-nova.service << EOF
[Unit]
Description=DevStack Nova Services
After=mysql.service rabbitmq-server.service

[Service]
ExecStart=/opt/stack/devstack/rejoin-stack.sh nova
WorkingDirectory=/opt/stack/devstack
User=stack
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

# 示例:Neutron 服务
sudo tee /etc/systemd/system/devstack-neutron.service << EOF
[Unit]
Description=DevStack Neutron Services
After=mysql.service rabbitmq-server.service

[Service]
ExecStart=/opt/stack/devstack/rejoin-stack.sh neutron
WorkingDirectory=/opt/stack/devstack
User=stack
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF
2.2 启用服务
sudo systemctl daemon-reload
sudo systemctl enable devstack-nova.service devstack-neutron.service

三、服务状态检查命令

1. 数据库与消息队列
# MySQL 状态
sudo systemctl status mysql
mysql -u root -p -e "SHOW DATABASES;"

# RabbitMQ 状态
sudo systemctl status rabbitmq-server
sudo rabbitmqctl cluster_status

2. Keystone(认证服务)
sudo systemctl status keystone
openstack token issue

3. Glance(镜像服务)
sudo systemctl status glance-api
openstack image list

4. Nova(计算服务)
sudo systemctl status nova-api nova-compute
openstack compute service list

5. Neutron(网络服务)
sudo systemctl status neutron-server neutron-l3-agent neutron-dhcp-agent
openstack network agent list

6. Cinder(块存储服务)
sudo systemctl status cinder-api cinder-scheduler cinder-volume
openstack volume service list

7. Horizon(Dashboard)
sudo systemctl status apache2
curl -I http://localhost/dashboard

四、新增配置与依赖检查

# 检查服务启动顺序(依赖关系)
systemctl list-dependencies mysql.service rabbitmq-server.service

2. 防火墙配置(可选)
# 开放 API 端口
sudo ufw allow 5000/tcp  # Keystone
sudo ufw allow 9292/tcp  # Glance
sudo ufw allow 8774/tcp  # Nova
sudo ufw allow 9696/tcp  # Neutron
3. 日志文件路径

五、故障排查

1. 服务启动失败
# 查看服务日志
journalctl -u <服务名>.service --since "10 minutes ago"

# 示例:查看 Nova API 日志
journalctl -u nova-api.service

2. 端口冲突
# 检查端口占用
sudo netstat -tulnp | grep ':5000\|:9292\|:8774\|:9696'

3. 数据库连接问题
# 检查数据库用户权限
mysql -u root -p -e "SHOW GRANTS FOR 'nova'@'%';"

六、最终验证

1. 全服务状态检查
openstack catalog list
openstack compute service list
openstack network agent list
openstack volume service list
2. 实例创建与网络测试
# 创建测试实例
openstack server create --image cirros --flavor m1.tiny test-instance

# 分配浮动 IP 并测试
FLOATING_IP=$(openstack floating ip create ext-net -f value -c floating_ip_address)
openstack server add floating ip test-instance $FLOATING_IP
ping $FLOATING_IP

附录:服务自启配置文件示例

1. Nova Systemd 单元文件

# /etc/systemd/system/nova-api.service
[Unit]
Description=OpenStack Nova API Server
After=network.target mysql.service rabbitmq-server.service

[Service]
ExecStart=/usr/bin/nova-api
User=nova
Restart=on-failure

[Install]
WantedBy=multi-user.target

2. Neutron Systemd 单元文件

# /etc/systemd/system/neutron-server.service
[Unit]
Description=OpenStack Neutron Server
After=network.target mysql.service rabbitmq-server.service

[Service]
ExecStart=/usr/bin/neutron-server
User=neutron
Restart=on-failure

[Install]
WantedBy=multi-user.target

说明

  • 如果是 DevStack 部署,优先使用 devstack-*.service 单元文件。
  • 如果是 原生 OpenStack 部署,直接使用系统内置的 nova-api.service 等。
  • 所有操作需在 物理机控制台带外管理界面 执行,避免网络中断导致失联。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值