Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Molecule VMware Driverの紹介

sky_joker
January 20, 2021

Molecule VMware Driverの紹介

sky_joker

January 20, 2021
Tweet

More Decks by sky_joker

Other Decks in Technology

Transcript

  1. www.goodpello.com
    Molecule VMware Driver
    の紹介
    VMware DevOps Meetup #7

    View Slide

  2. 今日話す事
    01. Moleculeについて
    02. Molecule VMware Driverの紹介
    03. Molecule VMware Driverの使い方(デモ)
    04. まとめ

    View Slide

  3. 自己紹介
    3
    ---
    - 名前: 大嶋 健容
    Twitter: @sky_jokerxx
    GitHub: sky-joker
    所属: Red Hat K.K.
    仕事: コンサルタント
    コントリビュート:
    ansible:
    collaborator:
    - VMware
    - Zabbix
    浸かってる沼:
    - 小型PCクラスタ構築
    @sky_jokerxx
    得意:
    - ansible
    - VMware(vSphere, NSX)
    - vSphere/NSX APIを使った開発
    - OSSとVMwareの組み合わせ
    興味:
    - 自動化
    - コンテナ(k8s, OpenShift)
    - CICD
    趣味:
    - 自宅ラックで検証
    - Ansibleモジュール開発
    ナナチスキ

    View Slide

  4. 4
    Moleculeについて
    Moleculeとは
    ▸ AnsibleのRoleをテストするフレームワーク
    ▸ テストの環境準備からテストの実行(Roleの実行、結
    果の評価)および環境破棄までの処理を自動で実施
    ▸ テストの環境準備・破棄に必要なドライバは、
    vagrant/OpenStack/azure/gce/ec2などがある
    ▸ テストごとのシナリオを作成することで、テストパ
    ターンを複数用意することが可能

    View Slide

  5. Moleculeが出来ること
    5
    テスト環境の準備 セットアップ 結果検証 テスト環境の破棄
    vCenterログイン
    VMクローンなど
    ホスト名設定
    NW設定
    ツールインストール
    など
    実行結果検証
    正しく設定が
    入ってるかなど
    手動で実施する場合
    VM削除
    vCenterログアウト
    Moleculeを使用した場合
    テスト環境の準備 セットアップ テスト環境の破棄
    一連の作業が自動化可能
    テスト実行
    Playbook/Role実行
    など
    結果検証
    テスト実行

    View Slide

  6. VMwareサポートパッチはクローズに
    6

    その前にPR見とこう
    作るぞ!!
    あるやん!
    コメントを読み進めると
    既にドライバーが沢山あるし、ほとんどの人は
    VagrantやDockerで済むし
    需要あるか分からない
    コメント

    ちーん

    View Slide

  7. delegatedドライバで代替できるが
    7
    ▸ delegatedドライバを使うことでドライバに対応していない環境でもMolecule
    を使う事が可能
    delegateドライバを使用する場合は、以下の処理を自作する必要がある
    ▸ テストインスタンスを構築する処理
    ▸ 作成したテストインスタンスへ接続するためのインベントリ情報の生成
    ▸ テスト実行後にテストインスタンスを破棄する処理

    View Slide

  8. VMware Driverを作ってみた
    8
    https://github.com/sky-joker/molecule-vmware

    View Slide

  9. VMware Driverインストール方法
    9
    $ pip install molecule-vmware ansible pyvmomi
    ▸ pipでインストール
    • pypi https://pypi.org/project/molecule-vmware/
    • GitHub https://github.com/sky-joker/molecule-vmware

    View Slide

  10. VMware Driver使い方
    10
    $ molecule init role {ROLE_NAME} -d vmware
    ▸ Roleとシナリオを新規に作成
    $ cd {ROLE_DIR}
    $ molecule init scenario -d vmware
    ▸ 既存のRoleにシナリオを新規に作成

    View Slide

  11. VMware Driver使い方
    11
    $ ls -l {ROLE_DIR}/molecule/default/ | awk '{print $9}' | sed -e "/^ *$/d" | cat -n
    1 converge.yml
    2 create_linux_instance.yml
    3 create_windows_instance.yml
    4 create.yml
    5 destroy.yml
    6 INSTALL.rst
    7 molecule.yml
    8 verify.yml
    ▸ シナリオディレクトリの中身
    番号 説明
    1 テストインスタンスへRoleを実行するPlaybook
    2 Linuxのインスタンスを作成するときに実行するPlaybook
    3 Windowsのインスタンスを作成するときに実行するPlaybook
    4 インスタンスを作成するPlaybook(2, 3はこのPlaybookから呼ばれる)
    5 インスタンスを削除するplaybook
    6 インストールドキュメント
    7 Moleculeの設定
    8 converge実行後に状態が想定通りになっているか?を確認する処理を書くPlaybook

    View Slide

  12. 12
    VMware Driver使い方
    ---
    dependency:
    name: galaxy
    driver:
    name: vmware # 1
    vcenter_hostname: vcsa.local
    vcenter_username: [email protected]
    vcenter_password: secret
    validate_certs: false
    datacenter: DC
    cluster: Cluster
    folder: /vm
    vm_username: root
    vm_password: secret
    instance_os_type: linux # 5
    platforms:
    - name: instance
    template: CentOS7_TMP
    hardware:
    num_cpus: 2
    memory_mb: 2048
    networks:
    - name: VM Network
    ip: 100.64.0.2
    netmask: 255.255.255.0
    gateway: 100.64.0.1
    provisioner:
    name: ansible
    verifier:
    name: ansible
    # 2
    # 3
    # 4
    # 6
    番号 説明
    1 使用するドライバを指定
    2 vCenterのアクセス先、ログイン情報を指定
    3 テストインスタンスを作成するリソース先を指定
    4 テストインスタンスのゲストOSのアカウントを指定
    5 テストインスタンスのOSタイプを指定 [linux or windows]
    6 テストインスタンスの名前や使用するテンプレート、リソース、NWを指定
    次のパラメーターはvmwre_guestと同じものを指定可能
    • hardware
    • networks
    molecule.yml
    ▸ moleculeの設定を環境に合わせて変更

    View Slide

  13. VMware Driver使い方
    13
    $ molecule test
    ▸ Roleディレクトリの中で以下のコマンドを実行

    View Slide

  14. 14
    まとめ
    VMware Driverを使ってテンプレートを自動生成
    ▸ テストインスタンスを構築・破棄するための create.yml/destroy.yml を自
    動生成することが可能
    WN
    X
    BSF
    N
    PMFDVMF
    テストは自動化して効率化
    ▸ Moleculeを使用することで、テストインスタンスの自動構築、テスト実行
    、結果検証、テストインスタンス削除を自動で実施することが可能
    スクリプトのテストにも使えるかも
    ▸ 例外的な使い方としては、PowershellやBashなどで作ったスクリプトをテ
    ストインスタンスへコピーして実行するRoleを作れば、スクリプト自体の
    テストもできるかも
    ansiblejpのvmwareチャンネルでメンバー募集中!
    ▸ https://bit.ly/ansiblejp-slack

    View Slide

  15. Thank you For listening
    https://twitter.com/sky_jokerxx
    https://qiita.com/sky_jokerxx
    https://sky-joker.tech
    https://github.com/sky-joker
    @sky_jokerxx

    View Slide