回答:
すぐに起動して実行したい場合は、代わりにここに移動してください:
この回答は、JujuをOpenStackで使用する方法の詳細を示しています。
OpenStackプラットフォームは強力であり、その用途はさまざまです。ドキュメントのこのセクションは主に、MAAS、Juju、UbuntuなどのCanonicalコンポーネントを使用した、ただしこれらに限定されない「標準」稼働OpenStackシステムのデプロイに関するものです。必要に応じて、他の方法とソフトウェアが言及されます。
サービスを展開する前に、利用可能なリソースとその使用方法を把握しておくと非常に便利です。OpenStackは相互に関連する多数のサービス(Nova、Swiftなど)で構成され、各サービスはホストの観点から異なる要求を持っています。たとえば、オブジェクトストレージを提供するSwiftサービスには、コンピューティングリソースを提供するNovaサービスとは異なる要件があります。
各サービスの最小要件と推奨事項は、公式のOpenStack運用ガイドに記載されています
MAASとジュジュとOpenStackのを展開するためのノードの推奨構成は、システム内のすべてのノードが実行することが可能でなければならないということであるANYサービスの。これは、システムの堅牢性のためのベストプラクティスです。物理ノードに障害が発生した場合、別のノードを再利用して代わりに使用できるためです。これは明らかに、追加のネットワークインターフェイスなどのハードウェア要件にまで及びます。
経済的理由などで異なる構成のハードウェアの使用を選択した場合、ハードウェア障害を克服する能力が低下することに注意してください。また、特定のノードにデプロイメントをターゲットする必要があります。タグに関するMAASドキュメントのセクションを参照してください。
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には最小限のセットアップが必要です。ここでは、MAASクラスターで動作するように既に構成されていることを前提としています(この詳細については、[Jujuインストールガイド] [juju_install]を参照してください。
まず、Jujuが使用する画像とツールを取得する必要があります。
juju sync-tools --debug
次に、ブートストラップインスタンスを作成できます。
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
Jujuブートストラップノードが稼働しているので、OpenStackのインストールに必要なサービスをデプロイできます。これらのサービスを展開するときに適切に構成するには、--config
各deployコマンドでスイッチと一緒に渡すことで、前に定義した構成ファイルを使用します。異なる場合は、構成ファイルの名前とパスに置き換えてください。
以下の順序でサービスを展開することは有用ですが、必須ではありません。また、追加のターミナルウィンドウを開いてコマンドを実行することを強くお勧めします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
サービスは展開されましたが、まだ相互に接続されていません。現在、各サービスは独立して存在しています。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クラウドは現在実行中ですが、使用する準備ができる前にいくつかの追加コンポーネントを追加する必要があります。
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)上にハイパーバイザーとして構築されています。
RDOの展開は、迅速かつ簡単なプロセスです。OpenStackクラウドのセットアップには約15分かかり、わずか3ステップで完了します。 http://openstack.redhat.com/Quickstart