web-dev-qa-db-ja.com

JujuでOpenStackクラウドをデプロイするにはどうすればよいですか?

12.04の可能な展開に備えて、テストクラウドを立ち上げて実行したいと思います。 UECを少しいじりましたが、新しいスタックの入門書として役立つものを見つけるのに苦労しました。 Diabloには一般的なドキュメントがありますが、Ubuntuには既に特定のガイドで時間を節約できる便利なものがたくさんある可能性があります。

また、私が望む限り、Canonicalのサポートを使用して小さなクラスターを実行するための予算には、$ 4-6kが含まれていません。

15
Bryan Agee

OpenStackのインストール

すぐに起動して実行したい場合は、代わりにここに移動してください:

この回答は、JujuをOpenStackで使用する方法の詳細を示しています。

範囲

OpenStackプラットフォームは強力であり、その用途はさまざまです。ドキュメントのこのセクションは、主に、MAAS、Juju、UbuntuなどのCanonicalコンポーネントを使用した、ただしこれらに限定されない「標準」稼働OpenStackシステムのデプロイに関するものです。必要に応じて、他の方法とソフトウェアが言及されます。

仮定

  1. MAASの使用 -最初にこれらの指示に従ってください。
  2. ジュジュの使用
  3. ローカルネットワーク構成-このドキュメントでは、OpenStackクラウドにアクセスするための個別のインターフェースを含む、適切なローカルネットワーク構成があることを前提としています。理想的なネットワークは、[MAAS] [OpenStackのMAASドキュメント]で説明されています。

インストールの計画

サービスを展開する前に、利用可能なリソースとその使用方法を把握しておくと非常に便利です。 OpenStackは相互に関連する多数のサービス(Nova、Swiftなど)で構成され、各サービスはホストの観点から異なる要求を持っています。たとえば、オブジェクトストレージを提供するSwiftサービスには、計算リソースを提供するNovaサービスとは異なる要件があります。

各サービスの最小要件と推奨事項は、公式の OpenStack Operations Guide に記載されています。

MAASおよびJujuでOpenStackをデプロイするための推奨ノード構成は、システム内のすべてのノードがサービスのANYを実行できる必要があることです。これは、システムの堅牢性のためのベストプラクティスです。物理ノードに障害が発生した場合、別のノードを再利用して代わりに使用できるためです。これは明らかに、追加のネットワークインターフェイスなどのハードウェア要件にまで及びます。

経済的な理由または別の方法でハードウェアの異なる構成を使用することを選択した場合、ハードウェア障害を克服する能力が低下することに注意してください。また、特定のノードにデプロイメントをターゲットする必要があります- タグのMAASドキュメント のセクションを参照してください。

OpenStack構成ファイルを作成します

Jujuチャームを使用して、OpenStackのコンポーネントパーツをデプロイします。各チャームは、特定のサービスのセットアップに必要なすべてをカプセル化します。ただし、個々のサービスには多くの構成オプションがあり、その一部を変更する必要があります。

このタスクを簡単かつ再現性の高いものにするために、すべてのサービスに関連するオプションを含む個別の構成ファイルを作成します。これは標準のYAML形式で記述されています( これがよくわからない場合はwww.yaml.orgを参照してください )。

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'

すべてのサービスについて、インストールソースを指すようにopenstack-Originを構成できます。この場合、Ubuntu 14.04 LTS Trustyリリースの関連ソースを指すデフォルトに依存します。各サービスの詳細な構成については、 このドキュメント で説明しています。

その他の構成

OpenStackサービスのデプロイには、他の設定と構成オプションが可能です。これらはJujuが使用する個々のチャームのドキュメントで詳しく説明されており、 オンラインJujuチャームストア にアクセスし、ページ。構成設定は、次に示すように、メインページの[構成]で詳しく説明されています。

enter image description here

Jujuを使用したOpenStackのデプロイ

構成が定義されたので、Jujuを使用してサービスをデプロイおよび関連付けることができます。

ジュジュの初期化

Jujuには最小限のセットアップが必要です。ここでは、MAASクラスターで動作するように既に構成されていると仮定します(この詳細については、[Jujuインストールガイド] [juju_install]を参照してください。

まず、Jujuが使用する画像とツールを取得する必要があります。

juju sync-tools --debug

次に、bootstrapインスタンスを作成できます。

juju bootstrap --upload-tools --debug

Upload-toolsスイッチを使用して、取得したローカルバージョンのツールを使用します。デバッグスイッチは、役立つ可能性がある詳細な出力を提供します。 Jujuがインスタンスを作成してツールをインストールしているため、このプロセスには数分かかる場合があります。終了したら、次のコマンドでシステムのステータスを確認できます。

juju status

次のような結果が返されます。

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

OpenStackチャームをデプロイする

Juju bootstrapノードが稼働しているので、OpenStackのインストールに必要なサービスをデプロイできます。これらのサービスをデプロイ時に適切に設定するには、各デプロイコマンドで--configスイッチとともに渡すことで、前に定義した設定ファイルを利用します。異なる場合は、構成ファイルの名前とパスに置き換えてください。

以下の順序でサービスを展開することは有用ですが、必須ではありません。また、追加のターミナルウィンドウを開いてjuju debug-logコマンドを実行することを強くお勧めします。これにより、すべてのサービスの実行時にログが出力され、トラブルシューティングに役立ちます。

また、juju statusコマンドを定期的に実行して、各サービスがインストールされ、適切に実行されていることを確認することもお勧めします。 Jujuは、オンラインチャームストアから可能な限り最高のバージョンのチャームを自動的に取得しようとします。制限されたネットワークまたは閉じたネットワーク内からインストールする場合、必要なチャームをプリフェッチすることができます。 [オフラインチャームのドキュメント] [charms-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

OpenStackサービス間に関係を追加する

サービスは現在デプロイされていますが、まだ相互に接続されていません。現在、各サービスは独立して存在しています。 juju add-relationコマンドを使用して、お互いを認識させ、関連する接続とプロトコルを設定します。この追加の構成は、個々のチャーム自体によって処理されます。

Keystone認証サービスとそのデータベースをセットアップすることにより、チャーム間の関係の追加を開始する必要があります。これは他の多くの接続で必要になるためです。

juju add-relation keystone mysql

関係が設定されるまで待機します。終了したら、jujuステータスでチェックします。

juju status mysql
juju status keystone

このサービスが落ち着くまで少し時間がかかります。関係の追加を継続することは確かに可能ですが(Jujuは保留中のアクションのキューを管理します)、関係の多くが同じサービスを参照するため、全体の所要時間の面で逆効果になる可能性があります。

次の関係も作成する必要があります。

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

最後に、jujuステータスの出力は、すべての関係が完了したことを示す必要があります。 OpenStackクラウドは現在実行中ですが、使用する準備ができる前にいくつかの追加コンポーネントを追加する必要があります。

17
Jorge Castro

Ken Peppleには、OpenStackのデプロイに関する本があります。 http://shop.oreilly.com/product/0636920021674.do

Kenの会社(Internap)は、最初の商用のOpenStackクラウドコンピューティングサービスを提供しています。

http://www.theregister.co.uk/2011/10/28/internap_openstack_cloud/

インターナップのクラウドは、Xen Cloud Platform(XCP)上にハイパーバイザーとして構築されています。

2
Todd Deshane

RDOの展開は、迅速かつ簡単なプロセスです。 OpenStackクラウドのセットアップには約15分かかり、わずか3ステップで完了します。 http://openstack.redhat.com/Quickstart

0
Omid Kosari