ISU-Ansible.autofs
Autofs 
このドキュメントはmddocを使用して生成されました。
このAnsibleロールは、autofsサービスまたはsystemd初期化システムを使用して自動マウントファイルを作成するのを支援します。
このロールは、Enterprise Linux(Red Hat、CentOS、Scientific Linux)およびFedora環境で動作します。
このロールを使用するには、変数リストにsystemd_mountsまたはautofs_mounts変数を記入してください。マウントは以下の例のように定義されたキー/値ペアのセットです。
systemd_mountsファイルで使用される5つのオプションがあります:
オプション | 説明 |
---|---|
share | リモートシェアの場所(通常の表記) |
mount | リモートファイルシステムのローカルマウントポイント |
type | マウントの種類 |
options | マウントオプション(リストはカンマで結合されます) |
automount | これが自動マウントファイルシステムかどうか |
autofs辞書は、automountマウントオプションを除いて、systemdファイルと同じです。
システムでマウントを有効にするには、systemd_mounts_enabledリストを適切な辞書キーで埋めて、マウントを実行してください。
このロールは以下もインストールします:
- nfs-utils
- nfs4-acl-tools
- cifs-utils
注意:autofsとsystemdの両方で有効化されたマウントポイントは、autofsデーモンによって処理されるべきですが、同時に両方を有効にすることは推奨されません。
使用方法
- hosts: all
vars:
use_systemd_mounts: true
systemd_mounts:
Mount1:
share: //server/service$
mount: /somemountpoint
type: cifs
options:
- domain=local
- username=user
- password=pass
- uid=1001
- gid=1000
automount: true
Mount2:
share: someserver:/export
mount: /someothermountpoint
type: nfs
options:
- uid=1000
automount: false
Mount3:
share: someserver:/export
mount: /another-mountpoint
type: nfs
options:
- uid=1000
automount: false
systemd_mounts_enabled:
- Mount1
- Mount2
- Mount3
roles:
- ISU-Ansible.ansible-autofs
デフォルト変数
使用変数
- use_systemd_mounts: デフォルトはfalseに設定されています。これをtrueに設定すると、systemdタスクリストが有効になります。
- use_autofs_mounts: デフォルトはfalseです。これをtrueに設定すると、autofsタスクリストが有効になります。
- systemd_mounts: この変数は、システムのsystemdマウントの辞書です。
- autofs_mounts: この変数は、システムのautofsマウントの辞書です。
- systemd_mounts_enabled: この変数は、systemdを介して有効にするマウントのリストであるべきです。
- autofs_mounts_enabled: この変数は、autofsを介して有効にするマウントのリストであるべきです。
その他の変数
以下の変数はテストで使用されます。
- systemd_mounts_manage_service
- systemd_mounts_allow_reload
- autofs_mounts_manage_service
- autofs_mounts_allow_reload
例
use_systemd_mounts: true
systemd_mounts:
Mount1:
share: //server/service$
mount: /somemountpoint
type: cifs
options:
- domain=local
- username=user
- password=pass
- uid=1000
- gid=1000
automount: true
systemd_mounts_enabled:
- Mount1
use_autofs_mounts: true
autofs_mounts:
Mount2:
share: someserver:/export
mount: /someothermountpoint
type: nfs
options:
- uid=1000
autofs_mounts_enabled:
- Mount2
変数
デフォルトでは、systemd_automount_os_supportedおよびautofs_automount_os_supported変数はfalseに設定されています。これはRedHat.ymlとFedora.ymlファイルで上書きされます。他のオペレーティングシステムが後に追加される場合、それらには*vars/*フォルダーにファイルが追加されます。
Fedora変数
現在、Fedora.ymlとRedHat.ymlファイルの間に違いはありません。別のファイルを含める理由は、FedoraのアップストリームがロールがFedoraで実行できない原因となる別のファイル/変数/前提条件を含む場合です。
Red Hat 7
現在、Red Hat Enterprise Linux 7 OSバリアントのみをサポートしています。Red Hat Enterprise Linux 6のサポートも追加できるかもしれませんが、これは高く要求されない限り、RHEL 7以上のみをサポートする予定です。
タスク
タスクモジュールには以下が含まれます:
- systemd_mounts.yml
- autofs_mounts.yml
各インクルードは、ファイルを含めるために有効にしなければならないuse変数に関連付けられています -- use_systemd_mountsとuse_autofs_mounts。
マウントを便利にするために、ファイルは*vars/*フォルダーからの以下の変数ファイルの最初に見つかったものを含みます。これは、最も具体的な変数ファイルから最も一般的なファイルまでを確認することを目的としています。
その後、次の変数をansible_virtualization_typeファクトに基づいて設定します:
- [autofs|systemd]_mounts_manage_service
- [autofs|systemd]_mounts_allow_reload
これらの変数はテストを助けるために設定されます。これらの変数は、実行中のオペレーティングシステムがDockerコンテナ内で実行されていない場合にのみtrueに設定されます。これらが'true'に設定されると、ハンドラーは実行されません。テストはDockerコンテナ内でtravis-ciを介して行われるため、サービスの再起動はロールのtravisチェックを失敗させることになります。
最後のチェックは、現在のオペレーティングシステムがサポートされていることを確認することです。この変数は*vars/*フォルダー内に設定され、上記のいずれかの変数ファイルを使用します。
そうでなければ、タスクリストは単にNFSとCIFSに必要なパッケージをインストールし、適切な場所にマウント/自動マウントファイルを作成します。
ハンドラー
systemdの再読み込みは、システムにマウントが確立された後、systemdデーモンを再読み込みします(daemon_reload)。これは、システムにマウントの追加または削除が行われるたびに実行する必要があります。
systemdマウントの有効化およびsystemdマウントの開始ハンドラーは、'automount'ディレクティブがfalseに設定されていないか、設定されていないマウントで実行されます。代わりに、systemdの自動マウントの開始およびsystemdの自動マウントの有効化ハンドラーは、'automount'ディレクティブがtrueに設定されているマウントで実行されます。
注意:systemdでは、スラッシュ('/')の代わりにダッシュ('-')をディレクトリセパレーターとして使用します。パスにダッシュが含まれるディレクトリは、systemd-escapeルール(man systemd-escape)に従ってエスケープする必要があります。
テンプレート
このロールには、systemd用とautofs用の4つの別々のテンプレートがあります。
systemdテンプレートは、/etc/systemd/system
ディレクトリに配置される.moumtおよび.automountファイルを管理します。これらはマウントポイントの位置やオプションを扱います。
systemd.mount.j2
このテンプレートに変更が必要な場合は、変更点とその理由を示すプルリクエストを送信してください。
[Unit]
Description=Mount {{ item.key }}
After=network.target multi-user.target
[Mount]
What={{ item.value.share }}
Where={{ item.value.mount }}
Type={{ item.value.type | default ('mounts_type') }}
Options={{ item.value.options | join(',') | default ('mounts_options') }}
[Install]
WantedBy=default.target
systemd.automount.j2
[Unit]
Description=Automount {{ item.key }}
After=network.target multi-user.target
[Automount]
Where={{ item.value.mount }}
[Install]
WantedBy=default.target
auto.master.j2
autofsデーモンのアイテムを構成するために、/etc/auto.master.d
ディレクトリにauto.masterアイテムを追加しますので、新しいマウントが作成されるたびに/etc/auto.master
を完全に再構成する必要がありません。
{{ item.key | lower }} /etc/auto.{{ item.key | lower }}
auto.mount.j2
実際のマップファイルは/etc/auto.xに置かれます。ここで、xはスラッシュ('/')の代わりにダッシュ('-')で区切られたマウントポイントです。
{{ item.value.mount[1:] }} {{ item.value.options | join(",") }} {{ item.value.share }}