LoginSignup
1
2

More than 1 year has passed since last update.

インフラのコード化ツール Pulumi のインストール for Windows

Last updated at Posted at 2021-11-20

環境:Winodws 10 pro
python 3.9
VS-Code
私は、インフラのコード化ツールのTeraformを使い学んだばかりです。
インフラのコード化と言えばAWS のCloudFormationとかありますが、
これ以外でのインフラのコード化のできるツールを発見しました。

pulumi

pythonでAWSのS3やEC2インスタンスが作れてしまう。
pythonの他に,Type,JavaScript,Go,C#などが使えます。

私はPythonでインフラのコード化をしたいのでPythonを使用します。
Pythonは3.6以上です。

関連記事を読むとLInuxやMacが多いのでWindowsベースでインストールから
AWSのS3パケット作成と確認まで行いました。

1. Pulumiのアカウント作成

Pumi
サインアップができたら、NEW PROJECを作成します。

pumi01.jpg

「次へ」をクリックする。初回はこの下に必要な情報があるのでそこを入力する。
vfdfdsrfesr.jpg

私の場合はテストなのでほぼデフォルトです。
下のAWSのリージョンを東京リージョンに指定しています。
デフォルトでアメリカのリージョンです。
Create Projectをクリックしたら。

pulumi02.jpg
アカウントの部分をクリックします。
ユーザのホーム画面に移動
pulumi03.jpg
Settingsをクリックします。

pulumi04.jpg

Create Tokenをクリックすると中央にアクセストークンが表示されます。これをコピーして控えておきます。

2.Pulumiインストール

Chocolateyと言うパッケージマネージャーを使います。
インストールさえていない場合、以下のリンクが参考
[Chocolatey]パッケージマネージャーの威力 (Windows)
インストールしたら

choco install pulumi

インストール確認

 pulumi version

バージョンが表示されたら完了です。

3.AWS IAMユーザー作成

AWSにログインしてIAMユーザを作成します。
Admin権限を付与して、
「アクセスキー - プログラムによるアクセスAWS API、CLI、SDK などの開発ツールの
アクセスキー IDと シークレットアクセスキーを有効にします。」
にチェックを入れます。
ユーザ名は任意です。
あとはデフォルトで進めて、アクセスキーとシークレットアクセスキーを控えておきます。

4.AWS CLIの設定

Powershell

aws configure
AWS Access Key ID [None]: <YOUR_ACCESS_KEY_ID>
AWS Secret Access Key [None]: <YOUR_SECRET_ACCESS_KEY>
Default region name [None]:
Default output format [None]:

控えておいたアクセスキーとシークレットアクセスキーを入力してEnter
後は、そのままEnter

5.Pythonでのリソース作成とAWSでのリソース確認

プロジェクト用のディレクトリーを作成
Pulumiは、デフォルトでプロジェクト名としてディレクトリ名を使用します。
専用のディレクトリを作成してその下にプロジェクト名ディレクトリを作成します。

mkdir aws-python

作成したディレクトリに移動。

cd aws-python

次のコマンドを実行します。

プロジェクトの初期化

PS C:\Users\User\projects\aws-python> pulumi new aws-python -y

仮想環境をセットアップする

py -3.9 -m venv teestvenv
 .\venv\Scripts\activate
(venv) PS C:\Users\User\projects\aws-python> 

となればOKです。

(venv) PS C:\Users\User\projects\aws-python> pip3 install -r requirements.txt
Requirement already satisfied: pulumi<4.0.0,>=3.0.0 in c:\users\user\projects\iac-lab1\venv\lib\site-packages (from -r requirements.txt (line 1)) (3.18.0)
Requirement already satisfied: dill>=0.3.0 in c:\users\user\projects\iac-lab1\venv\lib\site-packages (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1)) (0.3.4)
Requirement already satisfied: grpcio>=1.33.2 in c:\users\user\projects\iac-lab1\venv\lib\site-packages (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1)) (1.42.0)
Requirement already satisfied: six>=1.12.0 in c:\users\user\projects\iac-lab1\venv\lib\site-packages (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1)) (1.16.0)
Requirement already satisfied: protobuf>=3.6.0 in c:\users\user\projects\iac-lab1\venv\lib\site-packages (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1)) (3.19.1)
Requirement already satisfied: pyyaml>=5.3.1 in c:\users\user\projects\iac-lab1\venv\lib\site-packages (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1)) (6.0)
Requirement already satisfied: semver>=2.8.1 in c:\users\user\projects\iac-lab1\venv\lib\site-packages (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1)) (2.13.0)
(venv) PS C:\Users\User\projects\aws-python1>

エラーがなく
正常に初期化が完了すると以下のファイルが生成されます。
・ main.py
・ Requirements.txt
・ Pulumi.yaml
・ venv

main.pyファイルを見ると、次の1行のコードが書いてあります。

import pulumi

AWSパッケージをインストールする

(venv) PS C:\Users\User\projects\aws-python1>pip3 install pulumi-aws
  Downloading pulumi_aws-4.29.0.tar.gz (3.8 MB)
     |████████████████████████████████| 3.8 MB 6.8 MB/s
Collecting parver>=0.2.1
  Using cached parver-0.3.1-py2.py3-none-any.whl (14 kB)
Collecting pulumi<4.0.0,>=3.0.0
  Using cached pulumi-3.18.0-py2.py3-none-any.whl (168 kB)
Collecting semver>=2.8.1
  Using cached semver-2.13.0-py2.py3-none-any.whl (12 kB)
Collecting attrs>=19.2
  Using cached attrs-21.2.0-py2.py3-none-any.whl (53 kB)
Collecting six~=1.13
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting arpeggio~=1.7
  Using cached Arpeggio-1.10.2-py2.py3-none-any.whl (54 kB)
Collecting pyyaml>=5.3.1
  Using cached PyYAML-6.0-cp39-cp39-win_amd64.whl (151 kB)
Collecting dill>=0.3.0
  Using cached dill-0.3.4-py2.py3-none-any.whl (86 kB)
Collecting protobuf>=3.6.0
  Using cached protobuf-3.19.1-cp39-cp39-win_amd64.whl (895 kB)
Collecting grpcio>=1.33.2
  Using cached grpcio-1.42.0-cp39-cp39-win_amd64.whl (3.3 MB)
Using legacy 'setup.py install' for pulumi-aws, since package 'wheel' is not installed.
Installing collected packages: six, semver, pyyaml, protobuf, grpcio, dill, attrs, arpeggio, pulumi, parver, pulumi-aws
    Running setup.py install for pulumi-aws ... done
Successfully installed arpeggio-1.10.2 attrs-21.2.0 dill-0.3.4 grpcio-1.42.0 parver-0.3.1 protobuf-3.19.1 pulumi-3.18.0 pulumi-aws-4.29.0 pyyaml-6.0 semver-2.13.0 six-1.16.0
WARNING: You are using pip version 21.2.4; however, version 21.3.1 is available.
You should consider upgrading via the 'C:\Users\User\projects\iac-lab1\teestvenv\Scripts\python.exe -m pip install --upgrade pip' command.

main.pyに次の行をインポートします。

"""A Python Pulumi program"""

import pulumi
import pulumi_aws as aws

AWSリージョンを設定する

(venv) PS C:\Users\User\projects\aws-python1>pulumi config set aws:region ap-northeast-1

S3パケット作成

main.pyに以下を記述する。

import pulumi
import pulumi_aws as aws

bucket = aws.s3.Bucket("my-bucket")

デプロイします。

(venv) PS C:\Users\User\projects\aws-python1> pulumi up
Previewing update (dev)

View Live: https://app.pulumi.com/beaucarnes/aws-python1/dev/previews/827f9488-cc23-441f-946a-9852090ab0e3

     Type                 Name          Plan
 +   pulumi:pulumi:Stack  iac-lab1-dev  create
 +   └─ aws:s3:Bucket     my-bucket     create

Resources:
    + 2 to create

Do you want to perform this update?  [Use arrows to move, enter to select, type to filter]
  yes
> no
  details

矢印キーでyesを選択します。

Do you want to perform this update? yes
Updating (dev)

View Live: https://app.pulumi.com/アカウント名/aws-python1/dev/updates/1

     Type                 Name          Status
 +   pulumi:pulumi:Stack  iac-lab1-dev  created
 +   └─ aws:s3:Bucket     my-bucket     created

Resources:
    + 2 created

Duration: 10s

(venv) PS C:\Users\User\projects\aws-python1>

S3が生成されたので、AWSコンソール上で確認します。
s3pucket.jpg

Windowsでは環境によってはエラーが起きます。
Chocolateyと言うパッケージマネージャーのインストールでPowerShellでエラーが発生しました。
エラーのたびに検索してググってきましたが。
Pumiのサイトを良く読むのが一番良かったです。
何度もサイト上の手順を読むのが良いです。

参考資料
Pulumiを使ってみた【AWS】
プログラム の超個人的なメモ
Infrastructure as Codeのホープ、Pulumiを試す
Pulumi のコンセプト - プログラミングモデル

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2