galaxyproject.cvmfs
CVMFS
CernVM-FS (CVMFS)をインストールし、Galaxyサーバー向けに設定します。
要件
Enterprise Linux(ansible_os_family == "RedHat"
)では、CVMFSの依存関係のためにEPEL(Enterprise Linux用の追加パッケージ)を有効にしている必要があります。EPELを有効にする必要がある場合、geerlingguy.repo-epelで簡単に設定できます。
ロール変数
すべての変数はオプションです。ただし、設定しない場合、ロールは基本的に何もしません。デフォルトと例のプレイブックを参照してください。
Galaxyクライアント
以下で説明する cvmfs_role
以外に、Galaxyの管理者は、おそらく galaxy_cvmfs_repos_enabled
変数を設定する必要があります(デフォルトでは無効)。これによりCVMFSクライアントがgalaxyproject.orgのCVMFSリポジトリ用に自動的に設定されます。
galaxy_cvmfs_repos_enabled
の値は config-repo
または評価が true
になる任意の値にできます(明示的に無効にするために false
を設定することもできますが、これはデフォルトです)。config-repo
を使用することを推奨します。これにより、このロールは cvmfs-config.galaxyproject.org
CVMFSリポジトリをマウントするために必要な最小限の設定のみをインストールし、その後、CVMFSの設定リポジトリサポートを使用して他のgalaxyproject.orgのCVMFSリポジトリの設定を取得します。これにより、常に最新の設定を持つことができます。
galaxy_cvmfs_repos_enabled
を config-repo
に設定すると、cvmfs_config_repo
の値が上書きされます。クライアントには1つのデフォルトの設定リポジトリしか構成できないためです。
その他の真の値に galaxy_cvmfs_repos_enabled
を設定すると、ロールはターゲットホストに各galaxyproject.orgのCVMFSリポジトリの完全な設定をインストールする静的な設定を作成します。このオプションはレガシーのために保持されています。
Galaxyの cvmfs_keys
、cvmfs_server_urls
、cvmfs_repositories
のデフォルトを上書きするには、変数名の先頭に galaxy_
を追加します。詳細はデフォルトを参照してください。
galaxy_cvmfs_repos_enabled
が設定されていない場合、以下の変数を使用して非Galaxyリポジトリの完全な設定を行うことができます。
クライアントまたは共有クライアント/サーバー変数
変数 | 型 | 説明 |
---|---|---|
cvmfs_role |
文字列 | CVMFSホストの種類: client , stratum0 , stratum1 , または localproxy 。代わりに、ホストを cvmfsclients , cvmfsstratum0servers , cvmfsstratum1servers 、および cvmfslocalproxies にグループ分けできます。インストールされるパッケージや行われる設定を制御します。 |
cvmfs_keys |
辞書のリスト | すべてのタイプのホストにインストールするキー。 |
cvmfs_server_urls |
辞書のリスト | CVMFSサーバーのURLで、/etc/cvmfs/domain.d/<domain>.conf の CVMFS_SERVER_URL の値。 |
cvmfs_repositories |
辞書のリスト | CVMFSリポジトリの設定で、/etc/cvmfs/default.local の CVMFS_REPOSITORIES の値と /etc/cvmfs/repositories.d/<repository>/{client,server}.conf の追加設定。 |
cvmfs_config_repo |
辞書 | CVMFSの設定リポジトリの設定で、構文の詳細はデフォルトにある galaxy_cvmfs_config_repo の値を参照してください。 |
cvmfs_quota_limit |
MB単位の整数 | CVMFSクライアントキャッシュのサイズ。デフォルトは 4000 。 |
cvmfs_upgrade_client |
真偽値 | 既にインストールされている場合、クライアントのCVMFSを最新バージョンにアップグレードします。デフォルトは false 。 |
cvmfs_preload_install |
真偽値 | CVMFSキャッシュのプリロードスクリプト cvmfs_preload をインストールするかどうか。 |
cvmfs_preload_path |
パス | cvmfs_preload をインストールするディレクトリ。 |
cvmfs_install_setuid_cvmfs_wipecache |
真偽値 | 権限のないユーザーが cvmfs_config wipecache を実行できる setuid バイナリをクライアントにインストールします。ELのみ(ソースが提供されています)。 |
cvmfs_install_setuid_cvmfs_remount_sync |
真偽値 | 権限のないユーザーが cvmfs_talk remount sync を実行できる setuid バイナリをクライアントにインストールします。ELのみ(ソースが提供されています)。 |
複雑な(辞書のリスト)変数には次の構文があります:
cvmfs_keys:
- path: 'リポジトリキーの絶対パス key.pub'
owner: 'キー・ファイルの所有者(デフォルト: root)'
key: |
-----BEGIN PUBLIC KEY-----
MIIBIjAN...
cvmfs_server_urls:
- domain: 'リポジトリの親ドメイン'
urls:
- 'リポジトリのURL'
cvmfs_repositories:
- repository: 'リポジトリ名'
stratum0: 'ストラタム0のホスト名'
owner: 'リポジトリの所有者(デフォルト: root)'
key_dir: 'リポジトリキーを含むディレクトリのパス(デフォルト: /etc/cvmfs/keys)'
server_options:
- KEY=val
client_options:
- KEY=val
ストラタム0/リリースマネージャーの場合、prune_snapshots_time
により古いスナップショットを自動的に削除できます。これは、cronモジュールオプションに対応するキーを持つハッシュです。prune_snapshots_time
が設定されていない場合、スナップショットは自動的に削除されません。
cvmfs_repositories:
- repository: repo.example.org
owner: user1
prune_snapshots_count: 20
prune_snapshots_time:
special_time: daily
各リポジトリの prune_snapshots_count
オプションは、設定されていない場合、defaults/main.ymlの cvmfs_stratum0_prune_snapshots_count
の値にデフォルトで設定されます。
サーバー変数
変数 | 型 | 説明 |
---|---|---|
cvmfs_private_keys |
辞書のリスト | ストラタム0ホストにインストールするキー。cvmfs_keys とは別にして、重複を避けるためです。 |
cvmfs_config_apache |
真偽値 | ストラタム0および1のサーバーでApacheを設定するかどうか。無効にする場合は、自分で設定する必要があります。デフォルトは true 。 |
cvmfs_manage_firewall |
真偽値 | firewalld(EL)または ufw(Debian)の設定を試みて、設定したポートへのトラフィックを許可します。デフォルトは false 。 |
cvmfs_squid_conf_src |
パス | ストラタム1およびローカルプロキシサーバー用のSquid設定ファイルのテンプレートパス。デフォルトはロールの templates/ ディレクトリにあります。 |
cvmfs_stratum0_http_ports |
整数のリスト | ストラタム0サーバーでApacheがリッスンするポート(デフォルトは 80 )。 |
cvmfs_stratum1_http_ports |
整数のリスト | ストラタム1サーバーでSquidがリッスンするポート(デフォルトは 80 と 8000 )。 |
cvmfs_stratum1_apache_port |
整数 | ストラタム1サーバーでApacheがリッスンするポート(デフォルトは 8008 )。 |
cvmfs_stratum1_cache_mem |
MB単位の整数 | Squidがキャッシュに使用するメモリの量(デフォルトは 128 )。 |
cvmfs_stratum1_cache_dir |
辞書のリスト | |
cvmfs_localproxy_http_ports |
整数のリスト | ローカルプロキシサーバーでSquidがリッスンするポート(デフォルトは 3128 )。 |
cvmfs_upgrade_server |
真偽値 | サーバーのCVMFSを既にインストールされている場合、最新バージョンにアップグレードします。デフォルトは false 。 |
cvmfs_srv_device |
パス | CVMFSデータ用にファイルシステムを作成し、マウントするブロックデバイス。デフォルトでは未設定。 |
cvmfs_srv_fstype |
文字列 | cvmfs_srv_device に作成するファイルシステム(デフォルトは ext4 )。 |
cvmfs_srv_mount |
パス | CVMFSデータボリュームをマウントするパス(デフォルトは /srv 、ただし cvmfs_srv_device が未設定の場合は無視されます)。 |
cvmfs_union_fs |
文字列 | ストラタム0サーバーの新しいリポジトリ用のUnionファイルシステムのタイプ(overlayfs または aufs )。 |
cvmfs_numfiles |
整数 | /etc/security/limits.conf における最大オープンファイル数。ストラタム0サーバーの CVMFS_NFILES クライアントオプションに役立ちます。 |
依存関係
なし。
例のプレイブック
すべてのホストをCVMFSクライアントとして、GalaxyのCVMFSリポジトリに設定します。
- name: CVMFS
hosts: all
vars:
cvmfs_role: client
galaxy_cvmfs_repos_enabled: config-repo
roles:
- geerlingguy.repo-epel
- galaxyproject.cvmfs
GalaxyのCVMFSリポジトリのストラタム1(ミラー)を作成し、クライアントがストラタム1を優先するように設定します(cvmfsclients
と cvmfsstratum1servers
にホストを設定したと仮定)。
- name: CVMFS
hosts: cvmfsclients:cvmfsstratum1servers
vars:
cvmfs_srv_device: /dev/sdb
galaxy_cvmfs_repos_enabled: true
# デフォルトを上書き
galaxy_cvmfs_server_urls:
- domain: galaxyproject.org
urls:
- "http://cvmfs.example.org/cvmfs/@fqrn@"
- "http://cvmfs1-psu0.galaxyproject.org/cvmfs/@fqrn@"
- "http://cvmfs1-iu0.galaxyproject.org/cvmfs/@fqrn@"
- "http://cvmfs1-tacc0.galaxyproject.org/cvmfs/@fqrn@"
- "http://cvmfs1-mel0.gvl.org.au/cvmfs/@fqrn@"
- "http://cvmfs1-ufr0.galaxyproject.eu/cvmfs/@fqrn@"
roles:
- galaxyproject.cvmfs
独自のCVMFSインフラストラクチャを作成します。キーなしで1回実行します(リポジトリの作成時に新しいキーが生成されます)。
- name: CVMFS
hosts: cvmfsstratum0servers
vars:
cvmfs_numfiles: 4096
cvmfs_server_urls:
- domain: example.org
urls:
- "http://cvmfs0.example.org/cvmfs/@fqrn@"
cvmfs_repositories:
- repository: foo.example.org
stratum0: cvmfs0.example.org
key_dir: /etc/cvmfs/keys/example.org
server_options:
- CVMFS_AUTO_TAG=false
- CVMFS_GARBAGE_COLLECTION=true
- CVMFS_AUTO_GC=false
client_options:
- CVMFS_NFILES=4096
- repository: bar.example.org
stratum0: cvmfs0.example.org
key_dir: /etc/cvmfs/keys/example.org
roles:
- galaxyproject.cvmfs
キーが作成されたら、cvmfs_keys
に追加し、同様の方法で hosts: all
として実行し、cvmfs_keys
を次のように定義します:
- name: CVMFS
vars:
cvmfs_keys:
- path: /etc/cvmfs/keys/example.org/foo.example.org.pub
key: |
-----BEGIN PUBLIC KEY-----
MIIBIjAN...
- path: /etc/cvmfs/keys/example.org/bar.example.org.pub
key: |
-----BEGIN PUBLIC KEY-----
MIIBIjAN...
ライセンス
MIT
著者情報
ansible-galaxy install galaxyproject.cvmfs