Làm cách nào để triển khai đám mây OpenStack với Juju?


15

Tôi muốn có một đám mây thử nghiệm và chạy để chuẩn bị cho việc triển khai 12.04 có thể. Tôi đã nhầm lẫn với UEC một chút, nhưng đã có một thời gian khó khăn hơn nhiều để tìm thấy bất cứ điều gì hữu ích như là một mồi cho ngăn xếp mới. Có tài liệu chung về Diablo, nhưng có khả năng có rất nhiều phần đã có sẵn trong Ubuntu mà một hướng dẫn cụ thể có thể tiết kiệm thời gian.

Ngoài ra, nhiều như tôi muốn, ngân sách của tôi không bao gồm $ 4-6k để có một cụm nhỏ hoạt động với sự hỗ trợ của Canonical.

Câu trả lời:


17

Cài đặt OpenStack

Nếu bạn muốn thức dậy và chạy nhanh, hãy đến đây:

Câu trả lời này là một cái nhìn chi tiết hơn về cách sử dụng Juju với OpenStack.

Phạm vi

Nền tảng OpenStack mạnh mẽ và sử dụng đa dạng. Phần tài liệu này chủ yếu liên quan đến việc triển khai một hệ thống OpenStack chạy "tiêu chuẩn" bằng cách sử dụng, nhưng không giới hạn ở các thành phần Canonical như MAAS, Juju và Ubuntu. Trường hợp thích hợp các phương pháp và phần mềm khác sẽ được đề cập.

Giả định

  1. Sử dụng MAAS - làm theo những sự xâm nhập này trước.
  2. Sử dụng Juju
  3. Cấu hình mạng cục bộ - Tài liệu này giả định rằng bạn có cấu hình mạng cục bộ đầy đủ, bao gồm các giao diện riêng để truy cập vào đám mây OpenStack. Các mạng lý tưởng được trình bày trong [MAAS] [Tài liệu MAAS cho OpenStack].

Lập kế hoạch cài đặt

Trước khi triển khai bất kỳ dịch vụ nào, sẽ rất hữu ích khi lấy nguồn tài nguyên có sẵn và cách sử dụng chúng. OpenStack bao gồm một số dịch vụ liên quan đến nhau (Nova, Swift, v.v.) mà mỗi dịch vụ có nhu cầu khác nhau về mặt máy chủ. Ví dụ: dịch vụ Swift, cung cấp lưu trữ đối tượng, có một yêu cầu khác với dịch vụ Nova, cung cấp tài nguyên tính toán.

Các yêu cầu tối thiểu cho mỗi dịch vụ và đề xuất được nêu trong Hướng dẫn vận hành OpenStack chính thức

Thành phần được đề xuất của các nút để triển khai OpenStack với MAAS và Juju là tất cả các nút trong hệ thống phải có khả năng chạy BẤT K of dịch vụ nào. Đây là cách thực hành tốt nhất cho sự mạnh mẽ của hệ thống, vì bất kỳ nút vật lý nào cũng phải thất bại, một nút khác có thể được tái sử dụng để thay thế vị trí của nó. Điều này rõ ràng mở rộng cho bất kỳ yêu cầu phần cứng như giao diện mạng bổ sung.

Nếu vì lý do kinh tế hoặc nếu không, bạn chọn sử dụng các cấu hình phần cứng khác nhau, bạn nên lưu ý rằng khả năng khắc phục lỗi phần cứng của bạn sẽ bị giảm. Cũng cần phải nhắm mục tiêu triển khai đến các nút cụ thể - xem phần trong tài liệu MAAS trên thẻ .

Tạo tệp cấu hình OpenStack

Chúng tôi sẽ sử dụng bùa Juju để triển khai các bộ phận cấu thành của OpenStack. Mỗi bùa chú gói gọn mọi thứ cần thiết để thiết lập một dịch vụ cụ thể. Tuy nhiên, các dịch vụ riêng lẻ có nhiều tùy chọn cấu hình, một số trong đó chúng tôi sẽ muốn thay đổi.

Để thực hiện tác vụ này dễ dàng hơn và có thể tái tạo nhiều hơn, chúng tôi sẽ tạo một tệp cấu hình riêng với các tùy chọn có liên quan cho tất cả các dịch vụ. Điều này được viết theo định dạng YAML tiêu chuẩn ( xem www.yaml.org nếu điều này không quen thuộc với bạn ).

Đây là một ví dụ về openstack-config.yaml:

keystone:
  admin-password: openstack
  debug: 'true'
  log-level: DEBUG
nova-cloud-controller:
  network-manager: 'Neutron'
  quantum-security-groups: 'yes'
  neutron-external-network: Public_Network
nova-compute:
  enable-live-migration: 'True'
  migration-auth-type: "none"
  virt-type: kvm
  #virt-type: lxc
  enable-resize: 'True'
quantum-gateway:
  ext-port: 'eth1'
  plugin: ovs
glance:
  ceph-osd-replication-count: 3
cinder:
  block-device: None
  ceph-osd-replication-count: 3
  overwrite: "true"
  glance-api-version: 2
ceph:
  fsid: a51ce9ea-35cd-4639-9b5e-668625d3c1d8
  monitor-secret: AQCk5+dR6NRDMRAAKUd3B8SdAD7jLJ5nbzxXXA==
  osd-devices: /dev/sdb
  osd-reformat: 'True'

Đối với tất cả các dịch vụ, chúng tôi có thể định cấu hình openstack-originđể trỏ đến nguồn cài đặt. Trong trường hợp này, chúng tôi sẽ dựa vào mặc định, sẽ chỉ đến các nguồn có liên quan cho bản phát hành Trusty Ubuntu 14.04 LTS. Cấu hình hơn nữa cho mỗi dịch vụ được giải thích trong tài liệu này .

Các cấu hình khác

Các cài đặt và tùy chọn cấu hình khác có thể được triển khai cho các dịch vụ OpenStack. Đây là những chi tiết trong tài liệu về các loại bùa riêng lẻ được Juju sử dụng và có thể được kiểm tra bằng cách truy cập Cửa hàng Bùa Juju trực tuyến và tìm kiếm bùa bằng hộp tìm kiếm ở phía trên bên trái của trang. cài đặt cấu hình sau đó được chi tiết trong phần "Cấu hình" trong trang chính, như được hiển thị:

nhập mô tả hình ảnh ở đây

Triển khai OpenStack với Juju

Bây giờ cấu hình đã được xác định, chúng ta có thể sử dụng Juju để triển khai và liên quan đến các dịch vụ.

Khởi tạo Juju

Juju yêu cầu một lượng thiết lập tối thiểu. Ở đây chúng tôi giả sử nó đã được cấu hình để hoạt động với cụm MAAS của bạn (xem [Hướng dẫn cài đặt Juju] [juju_install] để biết thêm thông tin về điều này.

Đầu tiên, chúng ta cần tìm nạp hình ảnh và công cụ mà Juju sẽ sử dụng:

juju sync-tools --debug

Sau đó chúng ta có thể tạo cá thể bootstrap:

juju bootstrap --upload-tools --debug

Chúng tôi sử dụng công cụ tải lên để sử dụng các phiên bản cục bộ của công cụ mà chúng tôi vừa tìm nạp. Công tắc gỡ lỗi sẽ cung cấp đầu ra dài dòng có thể hữu ích. Quá trình này có thể mất vài phút, vì Juju đang tạo một cá thể và cài đặt các công cụ. Khi nó kết thúc, bạn có thể kiểm tra trạng thái của hệ thống bằng lệnh:

juju status

Điều này sẽ trả về một cái gì đó như:

environment: maas
machines:
  "0":
    agent-state: started
    agent-version: 1.18.1.1
    dns-name: localhost
    instance-id: localhost
    series: trusty

Triển khai Bùa chú OpenStack

Bây giờ nút bootstrap Juju đã hoạt động và chúng ta có thể triển khai các dịch vụ cần thiết để thực hiện cài đặt OpenStack. Để định cấu hình các dịch vụ này một cách chính xác khi chúng được triển khai, chúng tôi sẽ sử dụng tệp cấu hình mà chúng tôi đã xác định trước đó, bằng cách chuyển nó cùng với công --configtắc với mỗi lệnh triển khai. Thay thế tên và đường dẫn của tệp cấu hình của bạn nếu khác.

Nó rất hữu ích nhưng không cần thiết để triển khai các dịch vụ theo thứ tự dưới đây. Nó cũng rất được khuyến khích để mở một cửa sổ đầu cuối bổ sung và chạy lệnh juju debug-log. Điều này sẽ xuất nhật ký của tất cả các dịch vụ khi chúng chạy và có thể hữu ích để khắc phục sự cố.

Bạn cũng nên chạy juju statuslệnh định kỳ, để kiểm tra xem mỗi dịch vụ đã được cài đặt và đang chạy đúng chưa. Juju sẽ tự động cố gắng tìm nạp phiên bản bùa chú tốt nhất có thể từ Cửa hàng quyến rũ trực tuyến. Nếu bạn đang cài đặt từ trong một mạng bị hạn chế hoặc đóng, có thể tìm nạp trước các bùa yêu cầu. Xem [tài liệu về bùa ngoại tuyến] [bùa-offline].

juju deploy --to=0 juju-gui
juju deploy rabbitmq-server
juju deploy mysql
juju deploy --config openstack-config.yaml openstack-dashboard
juju deploy --config openstack-config.yaml keystone
juju deploy --config openstack-config.yaml ceph -n 3 
juju deploy --config openstack-config.yaml nova-compute -n 3
juju deploy --config openstack-config.yaml quantum-gateway
juju deploy --config openstack-config.yaml cinder
juju deploy --config openstack-config.yaml nova-cloud-controller
juju deploy --config openstack-config.yaml glance
juju deploy --config openstack-config.yaml ceph-radosgw

Thêm quan hệ giữa các dịch vụ OpenStack

Mặc dù các dịch vụ hiện đang được triển khai, nhưng chúng chưa được kết nối với nhau. Mỗi dịch vụ hiện đang tồn tại trong sự cô lập. Chúng tôi sử dụng juju add-relation lệnh để làm cho họ biết về nhau và thiết lập bất kỳ kết nối và giao thức có liên quan. Cấu hình bổ sung này được chăm sóc bởi các bùa chú cá nhân.

Chúng ta nên bắt đầu thêm quan hệ giữa các bùa bằng cách thiết lập dịch vụ ủy quyền Keystone và cơ sở dữ liệu của nó, vì điều này sẽ cần thiết cho nhiều kết nối khác:

juju add-relation keystone mysql

Chúng tôi chờ cho đến khi mối quan hệ được thiết lập. Sau khi kết thúc, hãy kiểm tra nó với trạng thái juju:

juju status mysql
juju status keystone

Có thể mất một vài phút để dịch vụ này giải quyết. Mặc dù chắc chắn có thể tiếp tục thêm quan hệ (Juju quản lý hàng đợi cho các hành động đang chờ xử lý) nhưng nó có thể phản tác dụng về tổng thời gian thực hiện, vì nhiều mối quan hệ đề cập đến cùng các dịch vụ.

Các mối quan hệ sau đây cũng cần được thực hiện:

juju add-relation nova-cloud-controller mysql
juju add-relation nova-cloud-controller rabbitmq-server
juju add-relation nova-cloud-controller glance
juju add-relation nova-cloud-controller keystone
juju add-relation nova-compute mysql
juju add-relation nova-compute rabbitmq-server
juju add-relation nova-compute glance
juju add-relation nova-compute nova-cloud-controller
juju add-relation glance mysql
juju add-relation glance keystone
juju add-relation cinder keystone
juju add-relation cinder mysql
juju add-relation cinder rabbitmq-server
juju add-relation cinder nova-cloud-controller
juju add-relation openstack-dashboard keystone
juju add-relation swift-proxy swift-storage
juju add-relation swift-proxy keystone

Cuối cùng, đầu ra của trạng thái juju sẽ hiển thị tất cả các mối quan hệ là hoàn thành. Đám mây OpenStack hiện đang chạy, nhưng nó cần được phổ biến với một số thành phần bổ sung trước khi nó sẵn sàng để sử dụng.


Cảm ơn. Thông tin chi tiết về URL.ubfox.com/wp-content/uploads/UCD-latest.pdf dường như không hoạt động
Breno Leitão


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.