gantsign.antigen
Ansibleロール: Antigen
このロールは、ZshのプラグインマネージャーであるAntigenをインストールし、Zshを設定するために使用します。
このロールには、特定のAntigenバンドルを条件に応じてインストールするためのコンパニオンロールがあります。その詳細はgantsign.antigen_bundlesで確認できます。
:thumbsdown: 廃止のお知らせ :thumbsdown:
最後のAntigenリリースは v2.2.3で、2018年1月4日です。このロールでは v2.0.2(2017年4月22日)を使用しています。これは、後のバージョンや一部のOh My Zshプラグインに問題があったためです。Antigenはもはやメンテナンスされていないようなので、このロールの使用は推奨しません。GantSignが別のZshプラグインマネージャーに移行するまで、このロールはメンテナンスを続けます。
要件
Ansible >= 2.9
Linuxディストリビューション
Debianファミリー
Debian
- Stretch (9)
- Buster (10)
- Bullseye (11)
Ubuntu
- Bionic (18.04)
- Focal (20.04)
RedHatファミリー
Rocky Linux
- 8
Fedora
- 35
SUSEファミリー
openSUSE
- 15.3
注: 他のバージョンも動作する可能性がありますが、テストは行われていません。
ロール変数
以下の変数を使用すると、ロールの動作を変更できます。
# Antigenバージョン番号
antigen_version: '2.0.2'
# 再配布可能パッケージのSHA256サム
antigen_redis_sha256sum: 'f47ec933b32c578abe8cb39b24e0ddd114ef5cc01b3c05bcb634859ead31493f'
# Antigenと一緒にOh-My-Zshをインストールするか
antigen_install_oh_my_zsh: yes
# Antigenダウンロード用のミラー場所
antigen_redis_mirror: 'https://github.com/zsh-users/antigen/releases/download/v{{ antigen_version }}'
# リモートボックス上にAntigenインストール用としてダウンロードされたファイルを保存するディレクトリ
antigen_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '/.ansible/tmp/downloads') }}"
# Antigenはユーザーごとにインストールされるため、インストールするユーザーを指定する必要があります
users:
- username: # Antigenをインストールするユーザー名
antigen_libraries:
- name: # ライブラリの名前(例: oh-my-zshまたはprezto)は一意でなければなりません
url: # オプション。カスタムライブラリを使用する場合は、Git URLを指定する必要があります
args: # オプション。Antigenに渡すコマンドライン引数
- '--exampleParam1'
- 'paramValue1' # 値が別の引数として渡される例
- '--exampleParam2=paramValue2' # 値が同じ引数として渡される例
env: # オプション。設定する環境変数
EXAMPLE_ENV1: 'envValue1'
EXAMPLE_ENV2: '"${HOME}/.example"' # 一重引用符はYAML用、二重引用符はシェル用
# 他のライブラリをここに追加
antigen_theme:
name: # ライブラリの名前(例: Oh-My-Zshに付属のテーマの1つ)
url: # オプション。テーマがOh-My-Zshに付属していない場合は、Git URLを指定する必要があります
env: {} # オプション。設定する環境変数
antigen_bundles:
- name: # Antigenバンドルの名前(例: Oh-My-Zshに付属のプラグインの1つ)
url: # オプション。それがOh-My-Zshのプラグインでない場合は、URLを指定する必要があります(GitHub用にowner/repoの省略形を使用)
location: # オプション。プラグインを含むリポジトリ内のディレクトリ
branch: # オプション。チェックアウトするGitブランチ
tag: # オプション。チェックアウトするGitタグ(ブランチより優先されます)
args: [] # オプション。Antigenに渡すコマンドライン引数
env: {} # オプション。設定する環境変数
# 他のバンドルをここに追加
# 他のユーザーをここに追加
例プレイブック
以下は、Antigenの例と同じことを実現します README.mkdの例と同じです。
- hosts: servers
roles:
- role: gantsign.antigen
users:
- username: example
antigen_libraries:
- name: oh-my-zsh
antigen_theme:
name: robbyrussell
antigen_bundles:
# デフォルトリポジトリからのバンドル(robbyrussellのoh-my-zsh)。
- name: git
- name: heroku
- name: pip
- name: lein
- name: command-not-found
# 構文ハイライティングバンドル。
- name: zsh-syntax-highlighting # `name`は必須(いずれかの有効なファイル名で一意でなければなりません)
url: zsh-users/zsh-syntax-highlighting
以下は、gantsign.oh-my-zsh
ロールの例と同じことを実現します
README.mdの例と同じです。
- hosts: servers
roles:
- role: gantsign.antigen
users:
- username: example
antigen_libraries:
- name: oh-my-zsh
env:
DISABLE_AUTO_UPDATE: '"true"' # オプション(これは`gantsign.oh-my-zsh`ロールの.zshrcでハードコーディングされていました)
antigen_theme:
name: robbyrussell # このロールにはデフォルトテーマがありません(`gantsign.oh-my-zsh`ロールとは異なります)
antigen_bundles:
- name: git # このロールにはデフォルトバンドル/プラグインがありません(`gantsign.oh-my-zsh`ロールとは異なります)
GantSignの他のロール
GantSignの他のロールは、Ansible Galaxyで見つけることができます。
開発とテスト
このプロジェクトは、Moleculeを使って 開発およびテストを行います。ロールはTestinfraと pytestを使って単体テストを行います。
開発またはテストを行うには、以下をインストールする必要があります:
上記のインストールは難しい場合があるため、このプロジェクトには Molecule Wrapperが含まれています。Molecule Wrapperは、Moleculeとその依存関係(Linux以外)をインストールし、渡したコマンドでMoleculeを実行するシェルスクリプトです。
Molecule Wrapperを使用してこのロールをテストするには、プロジェクトのルートから次のコマンドを実行します:
./moleculew test
注意: 一部の依存関係をインストールするにはsudo
権限が必要です。
ライセンス
MIT
著者情報
ジョン・フリーマン
GantSign Ltd. 会社番号: 06109112(イングランドで登録)