ISU-Ansible.autofs

Autofs Build Status

このドキュメントは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.ymlFedora.ymlファイルで上書きされます。他のオペレーティングシステムが後に追加される場合、それらには*vars/*フォルダーにファイルが追加されます。

Fedora変数

現在、Fedora.ymlRedHat.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_mountsuse_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 }}
プロジェクトについて

A role for the installation and configuration of autofs

インストール
ansible-galaxy install ISU-Ansible.autofs
ライセンス
gpl-2.0
ダウンロード
106
所有者