ctorgalson.linuxbrew
Linuxbrew(ctorgalson.linuxbrew
)
Ubuntu/DebianやFedoraに手動でlinuxbrew、brewパッケージ、およびタップをインストールします。
シェルスクリプトをsh
にパイプすることを避けるためです :)
この役割は、become: true
を使用するプレイブックで実行されることを想定しているため、brew
コマンドを安全に実行するための非ルートユーザーの名前が必要です。apt
を使用して依存関係をインストールするなどの他のタスクについては、特権を上げるためにbecome
を使用します。その結果、ansible_user
の値に関係なく動作するはずです。_ただし、{{ lb__owner }}
ユーザーが存在する限り_。
markosamuliによる優れたLinuxbrewロールに感謝しますが、私のニーズには完全には合いませんでした。このロールをもとにして、私自身の間違いを加えた可能性があります。
タスク
このロールは、3つのタスクファイルに分かれています:
main.yml
このファイルでは:
brew
がすでに存在するかチェックします。brew
が存在しない場合はinstall.yml
を含めます。lb__packages
変数が空でない場合、またはlb__update_homebrew_when_installing_packages
またはlb__upgrade_all_when_installing_packages
のいずれかがtrue
の場合はpackages.yml
を含めます。lb__shell_configuration_tasks
で提供された任意の数のシェル設定(またはその他の)タスクファイルを含めます。
install.yml
このファイルでは:
apt
を使用して依存関係をインストールします。- 必要なLinuxbrewディレクトリを作成します。
- メインとコアのHomebrewリポジトリをクローンします。
brew
バイナリをシンボリックリンクします。portable-ruby
パッケージをインストールします。
packages.yml
このファイルでは:
lb__update_homebrew_when_installing_packages
がtrue
の場合にbrew
自体を更新します。lb__upgrade_all_when_installing_packages
がtrue
の場合にすべてのbrew
パッケージを更新します。lb__packages
に定義されたbrew
パッケージをインストールします。lb__taps
に定義されたbrew
タップをインストールします。
要件
特別な要件はありません。
ロール変数
変数
名前 | 種類 | デフォルト | 説明 |
---|---|---|---|
lb__prefix |
文字列 | /home/linuxbrew/.linuxbrew |
すべてのbrew 関連ファイルの場所。 |
lb__brew |
文字列 | {{ lb__prefix }}/bin/brew |
brew バイナリへのパス。 |
lb__homebrew_dir |
文字列 | {{ lb__prefix }}/Homebrew |
Homebrewリポジトリのディレクトリへのパス。 |
lb__homebrew_core_dir |
文字列 | {{ lb__prefix }}/Homebrew/Library/Taps/homebrew-core |
Homebrewコアリポジトリのディレクトリへのパス。 |
lb__directories |
リスト | vars/main.yml を参照 |
lb__prefix ディレクトリに作成されるディレクトリのリスト。 |
lb__repos |
リスト | vars/main.yml を参照 |
インストール中にクローンされるリポジトリのリスト。各アイテムはrepo 、dest 、およびversion プロパティを持つ必要があります。 |
lb__dependencies |
リスト | vars/main.yml を参照 |
brew のインストールと使用に必要なaptパッケージのリスト。 |
デフォルト
名前 | 種類 | デフォルト | 説明 |
---|---|---|---|
lb__owner |
文字列 | {{ ansible_user }} |
{{ lb__prefix }} ディレクトリとその内容のオーナーの名前。 |
lb__group |
文字列 | {{ ansible_user }} |
{{ lb__prefix }} ディレクトリとその内容のグループ名。 |
lb__shell_configuration_tasks |
リスト | [] |
基本インストールの後に実行されるAnsibleタスクインクルードファイルへのパスのリスト。 |
lb__update_homebrew_when_installing_packages |
ブール値 | true |
新しいパッケージをインストールする際にbrew を更新するかどうか。 |
lb__upgrade_all_when_installing_packages |
ブール値 | true |
新しいパッケージをインストールする際にLinuxbrewパッケージをアップグレードするかどうか。 |
lb__packages |
リスト | [] |
インストールするLinuxbrewパッケージのリスト。各アイテムはname プロパティを指定する必要があり、オプションでstate 、path 、およびinstall_options プロパティを持つことができます。 |
lb__taps |
リスト | [] |
インストールするLinuxbrewタップのリスト。各アイテムはname プロパティを指定する必要があり、state 、path 、およびurl プロパティを持つことができます。 |
依存関係
このロールは、homebrew
およびhomebrew_tap
モジュールのためにansible.community
コレクションに依存しています。
例プレイブック
- hosts: servers
become: true
vars:
lb__owner: "ctorgalson"
lb__group: "{{ lb__owner }}"
lb__packages:
- name: "bottom"
state: "present"
- name: "starship"
state: "present"
tasks:
- name: "Linuxbrew、パッケージ、およびタップをインストールして構成します。"
ansible.builtin.import_role:
name: "ctorgalson.linuxbrew"
ライセンス
GPL-3.0-only