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
