---
id: cloud-openstack
title: "OpenStack"
shortTitle: "OpenStack"
track: cloud
trackTitle: "Cloud Providers"
order: 2
level: normal
status: published
estimatedMinutes: 25
prerequisites:
  - cloud-providers
next: cloud-alibaba
reviewedAgainst: 2026-10-12
sources:
  - title: "OpenStack documentation"
    url: https://docs.openstack.org/2024.2/
  - title: "OpenStack CLI"
    url: https://docs.openstack.org/python-openstackclient/latest/
---

# OpenStack

OpenStack là bộ phần mềm để một tổ chức tự chạy cloud: máy ảo, mạng, và identity. API cùng kiểu với AWS và Azure ở bài trước, nhưng máy chủ thuộc tổ chức đó, không phải public cloud.

## Để làm gì

Bạn đọc một lệnh `openstack server list` và map được Nova, Neutron, Keystone sang máy ảo, mạng, và identity.

## Gồm những gì

- Keystone, Nova, Neutron, Glance.
- File `openrc` chứa endpoint và token hoặc password.
- CLI `openstack`.

Bài này không cài control plane, và không có lab trên máy thật.

## Dùng khi nào

Một datacenter nội bộ đưa cho bạn project OpenStack thay vì subscription Azure. Lệnh Terraform có provider OpenStack, nhưng bài này chỉ đủ để đọc CLI.

Đừng học OpenStack thay cho Azure nếu sản phẩm đang chạy trên Azure. Tên service khác, việc vận hành identity vẫn là việc bạn đã thấy.

## Kiến thức cốt lõi

Keystone cấp token và project. Nova là compute, instance là máy ảo. Neutron là mạng, có network, subnet, router, security group. Glance giữ image để Nova boot.

`openstack` nói với API qua các biến trong `openrc`: endpoint, project, user. Bạn source file đó vào shell thì password vào môi trường. Đừng commit `openrc`. Đừng dán nó vào ticket.

Security group của Neutron lọc packet trước khi vào instance, cùng lớp với NSG trên Azure. SSH timeout rồi nới rule mà không nhìn group đang áp, đúng lỗi đã nói ở bài firewall.

## Lệnh và code mẫu

Đọc, chỉ chạy khi bạn đã có project lab và file do đội hạ tầng đưa:

```bash
openstack server list
openstack network list
```

Đừng source `openrc` tải từ mạng. File đó có endpoint và password.

## Thực hành

1. Điền bảng: Keystone, Nova, Neutron tương ứng identity, máy ảo, mạng.
2. Không cài DevStack.
3. Không dùng cloud công cộng để giả lập bài này.

## Kết quả mong đợi

Ba tên map đúng ba việc. Bạn không tạo instance.

## Checklist

- [ ] `openrc` không nằm trong Git.
- [ ] Security group và listener trong máy là hai lớp, giống bài firewall.
- [ ] Không dựng OpenStack cho một app đã có chỗ chạy trên Azure.

## Lỗi thường gặp

**Instance `ACTIVE` mà vẫn không SSH.** Thiếu rule security group, hoặc image không có key của bạn. `server list` chỉ nói máy đã boot.

**Dùng admin project cho ứng dụng.** Token đó sửa được cả cloud. Xin project riêng, quyền trên project đó.

## Nguồn

1. [OpenStack 2024.2 documentation](https://docs.openstack.org/2024.2/) — các service.
2. [OpenStackClient](https://docs.openstack.org/python-openstackclient/latest/) — lệnh `openstack`.

## Tiếp theo

[Alibaba Cloud](./03-alibaba.md)
