chrifey.ontap_volume_nfs_share

ontap-volume-nfs-share

この役割は、次の構成要素からなるNFSエクスポートを管理することを目的としています:

  • ジャンクションパスを持つフレックスボリューム
  • Qツリー
  • Qツリーのエクスポートポリシー

また、複数のボリュームやシステムを管理するために、グループ変数の扱い方の例も示します。

セーフモード

数回の話し合いの中で、ボリュームやQツリーの意図しない削除を防ぐために「セーフモード」を導入したいという点に至りました。

基本的には、環境変数に基づいて選択される2つのタスクファイル(no_safemode.ymlおよびsafemode.yml)を作成しました。この変数はansible-playbookコマンドに渡すことができます。

例:

ansible-playbook -i inventory site.yml -e safemode=true

ボリュームまたはQツリーをabsentとして指定した場合、セーフモードは削除されるボリューム/Qツリーごとに確認を求めます。セーフモード変数が設定されていないと、確認を求めずにボリューム/Qツリーを削除します。

要件

はじめに:

yumパッケージマネージャーを使用してAnsibleをインストールします(RHEL、CentOS):

yum install ansible python-pip
pip install netapp-lib

別の方法(python-virtualenvをインストールし、例えばyumで取得し、この仮想環境内でpipを使用):

yum install python-virtualenv
virtualenv ansible
source ansible/bin/activate
pip install ansible
pip install netapp-lib

役割変数

環境に特有のパラメータ(例:資格情報)を指定するためにグループ変数を作成することをお勧めします。

まず、インベントリファイルinventory/site/hostsを作成します:

[netapp]
localhost netapp_user=USERNAME netapp_password=SECRET

このファイルにログイン資格情報を保存するため、ansible-vaultで暗号化することを強くお勧めします。

ファイルを暗号化するために、次のコマンドを使用できます:

ansible-vault encrypt --ask-vault-pass inventory/site/hosts
ansible-vault view --ask-vault-pass inventory/site/hosts
ansible-vault edit --ask-vault-pass inventory/site/hosts

次に、環境を構成するための変数ファイルを作成します:

以下の例では、リポジトリのontap-volume-nfs-share役割で使用されるinventory/site/group_vars/all.ymlを示しています:

# 環境特有の変数
netapp_volumes:
  - { state: 'present', nacluster: 'cluster1.localdomain', vserver: 'vserver1', flexvol: 'flexvol1', space_guarantee: 'none', percent_snapshot_space: '5', aggregate: 'aggr1', size: '10', unit: 'gb', exportpolicy: 'default'  }

netapp_qtrees:
  - { state: 'present', nacluster: 'cluster1.localdomain', vserver: 'vserver1', qtree: 'qtree1', flexvol: 'flexvol1',
      exportpolicy: 'db-nodes', ro_rule: 'sys', rw_rule: 'sys', super_user_security: 'sys', client_match: '0.0.0.0/0' }

これにより、1つのグループ変数ファイルで複数のボリュームを管理できます(netapp_volumesまたはnetapp_qtreesリストに行を追加するだけ)。特定のボリューム/Qツリーのサブセットが必要な特定のアプリケーション用に、異なるグループ変数を持つ異なる「サイト」を作成することもできます。

依存関係

依存する役割はありません。

例プレイブック

次の例は、ontap-volume-nfs-share役割を利用するシンプルなプレイブックを示しています:

---
- hosts: localhost
  connection: local
  gather_facts: no
  roles:
   - ontap-volume-nfs-share

次のようにプレイブックを実行できます(--ask-vault-passオプションは、以前に暗号化されたファイルのパスワードを求めます):

ansible-playbook --ask-vault-pass -i inventory/site/hosts playbooks/site.yml

ライセンス

BSD

著者情報

ハッカソンに基づいています:

  • Sven Mundschenk
  • Stefan Gaertner
  • Steffen Knoth
  • Christian Fey
プロジェクトについて

Role to configure nfs exports (volume, qtree, policy)

インストール
ansible-galaxy install chrifey.ontap_volume_nfs_share
ライセンス
Unknown
ダウンロード
80
所有者