この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
はじめに
以下openstack公式サイトの手順を参照して実施しました。
https://docs.openstack.org/devstack/latest/
前提
AWSアカウントを持っています。
大まかな手順
- VPCを作成
- サブネットを作成
- セキュリティーグループを作成
- インターネットゲートウェイを作成
- ロールを作成
- インスタンスを作成
- devstackをインストール
- EIPを作成
- openstackダッシュボードを確認
構成手順
①VPCを作成
AWSコンソールへログイン
MFAコードを入力する
サービス検索欄に「VPC」を入力、VPC画面を開きます。「VPC作成」ボタンをクリックします。
ipv4 CIDRの値は「10.0.0.0/16」でよく利用していると思いますが、devstackがインストール際に、hostipを検知エラーの可能性があるので、他のCIDRを利用したほうがよいです。こちらは10.50.0.0/16で設定しました。
VPC作成できたことを確認します。
②サブネット作成
「VPC」サービス画面で、「サブネット」をクリック、「サブネット作成」をクリックします。
先程新規したVPCを選択します。
サブネット名は自由に記入いただき、IPv4 CIDRブロックは「10.50.1.0/24」で設定します。
サブネット作成完了しました。
③セキュリティーグループを作成
「VPC」サービス画面で、「セキュリティーグループ」をクリック、「セキュリティーグループ作成」をクリックします。
「セキュリティーグループ名」は自由入力、「説明」欄はセキュリティーグループ名と同じ内容で入力します。「VPC」は先程新規したVPCを選択します。
以下の通りにインバウンドとアウトバウンドを設定し、「セキュリティーグループの作成」ボタンをクリックします。
インバウンドの設定値:SSH すべて、HTTP すべて;
アウトバウンド設定値:すべてを許可します。
セキュリティーグループを作成完了しました。インバウンドとアウトバウンドの値を再度確認します。
アウトバウンドの設定値を確認します。
④インターネットゲートウェイを作成
「VPC」サービス画面で、「インターネットゲートウェイ」をクリック、「インターネットゲートウェイの作成」をクリックします。
インターネットゲートウェイの名前を入力し、「インターネットゲートウェイ」の作成をクリックします。
作成したインターネットゲートウェイをVPCにアタッチします。
先程新規したVPCを選択します。
サブネットからインターネットゲートウェイの通信経路を設定します。左側のメニューから「サブネット」をクリックし、先程新規したサブネットを選択し、ルートテーブルのURLをクリックし、ルートテーブル画面へ遷移します。
「ルートテーブル」画面から「ルールを編集」クリック、ルールを追加します。
送信先は「0.0.0.0/0」を入力し、ターゲットはプルダウンメニューから「インターネットゲートウェイ」をクリックし、先程新規したインターネットゲートウェイを選択します。
⑤ロールを作成
サービス欄から「IAM」を入力し、IAM管理画面へ遷移します。
左メニューから「ロール」をクリックし、「ロールを作成」ボタンをクリックします。
エンティティは以下の通りに設定します。
ポリシーは「AmazonSSMManagedInstanceCore」を選択します。
作成したことを確認します。
⑥ec2インスタンスを作成
いよいよインスタンスを作成します。
ec2ダッシュボードからインスタンスを起動します。
名前を入力し、インスタンスタイプを「ubuntu」を選択します。
openstackはvCPUは4以上必要ので、t2.xlargeでもできるかもしれませんが、念のためt2.2xlargeを選択しました。
新しいキーペアを作成します。
名前を入力してキーペアを作成します。
ダウンロードできたことを確認します。
ネットワーク設定します。「編集」ボタンをクリックします。
先程新規したVPC、サブネット、セキュリティーグループを選択します。
ストレージを30GBに設定します。
先程新規したロールを選択します。
以上で「インスタンスを起動」ボタンをクリックします。1分程度でインスタンス作成できます。
⑦devstackを構築
インスタンスへ接続する前に、先程ダウンロードしたキーペアファイルをpowershellの直下へ配置必要です、こちらのpowershellのディレクトリは「C:\Users\waninryu」ですので、C:\Users\waninryuの直下にopenstack-demo.pemを配置しました。
ローカルSSHクライアントからインスタンスへ接続。自分はwindowsを利用しているので、powershellで接続します。macを利用している場合ターミナルを利用いただければと思います。
質問が来たら「yes」を入力します。
openstack公式サイトのDevStack構築手順から、順番でコマンドを実行します。
devstackディレクトリへ移動出来たら、local.confファイルを編集します。公式サイトに記載した通りに「samples」フォルダにlocal.confサンプルファイルがあります。local.confファイルはdevstackの直下に配置しないと、devstackが検知されません。
- sudo 1. useradd -s /bin/bash -d /opt/stack -m stack
- sudo chmod +x /opt/stack
- echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
- sudo -u stack -i
- git clone https://opendev.org/openstack/devstack
- cd devstack
- cp samples/local.conf local.conf
- vi local.conf
こちらの内容を以下に変更します。
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
変更した内容を確認します。
コマンド:cat local.conf
インストール開始します。15分程度かかります。
コマンド: ./stack.sh
インストール完了した画面です。ログインユーザーが二つあります。
ログインuser①:admin
ログインuser②:domo
とパスワード:secret
openstackダッシュボードへアクセスIPはインスタンスのプライベートIPですので、直接アクセスできません。EIPを追加します。
⑧EIPを作成
ブラウザからhttpでアクセスできるように、EIPを作成します。
EIPアドレスを割り当てます。
EIPをインスタンスと関連付けます。
先程新規したインスタンスに関連付けます。
⑨openstackダッシュボードを確認します。
EIPのipアドレスをブラウザに入力します。
openstackへログイン
ダッシュボードを確認します。
以上、構築完了しました。注意必要なのは、インスタンスタイプです、スペースが足りない場合、インストールが途中で止まってしまいます。