jasonheecs.digitalocean
Ansibleロール: DigitalOceanドロップレット作成
DigitalOceanのドロップレットを作成し、そのIPアドレスをインベントリファイルに追加するAnsibleロールです。
要件
特になし。
インストール
ansible-galaxy install jasonheecs.digitalocean
ロール変数
ロール変数はdefaults/main.yml
にリストされています。また、機密変数(DigitalOceanのAPIトークンなど)はvars/private.yml
にリストする必要があります。
利用可能な変数は以下の通りで、デフォルト値も記載されています(defaults/main.yml
およびvars/private.yml.example
を参照):
# DigitalOceanアカウントのSSHキー識別子
do_ssh_key_name: Ansible SSH Key
# アカウントに追加する公開SSHキー
do_ssh_pub_key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
# ドロップレットにSSH接続するための秘密鍵
do_ssh_private_key: "~/.ssh/id_rsa"
# ドロップレットの名前
droplet_name: test-droplet
# サーバーを作成する地域のスラグ
droplet_region_id: sgp1
# ドロップレットを作成するサイズのスラグ
droplet_size_id: 512mb
# ドロップレットを作成するためのイメージのスラグ
droplet_image_id: ubuntu-18-04-x64
# Ansibleインベントリファイルの場所
ansible_inventory_file: hosts.ini
# インベントリファイル内でドロップレットをグループ化するためのグループ名
droplets_inventory_group: do_droplets
# DigitalOceanのパーソナルアクセストークン (https://www.digitalocean.com/community/tutorials/how-to-use-the-digitalocean-api-v2)
do_api_token: inserttokenhere
# ドロップレット作成中に追加するSSHキー (https://developers.digitalocean.com/documentation/v2/#ssh-keys)
droplet_additional_ssh_key_ids: []
依存関係
特になし。
例のプレイブック
リモートマシンでこのロールを実行するプレイブック:
- hosts: all
become: no
roles:
- { role: jasonheecs.digitalocean }
ローカルマシンでこのロールを実行するプレイブック:
- hosts: localhost
connection: local
become: no
roles:
- { role: jasonheecs.digitalocean }
サンプルプレイブックを参照してください。
テスト
自動テストはTest Kitchen、Kitchen Ansible、およびKitchen Dockerを使用して実施されます。
テストを実行するには、RubyとDockerがインストールされていることを確認し、次のコマンドを実行します:
gem install bundler && bundle exec kitchen test
テストビルドプロセスと期待される出力については、travis.ymlファイルとTravisビルドログを参照してください。
対応プラットフォーム
このAnsibleロールは以下のプラットフォームでテストされています:
- macOS Sierra
- macOS High Sierra
- Ubuntu 16.04
- Ubuntu 14.04
- CentOS 7
- Debian 9
ライセンス
MIT