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_packagestrueの場合にbrew自体を更新します。
  • lb__upgrade_all_when_installing_packagestrueの場合にすべての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を参照 インストール中にクローンされるリポジトリのリスト。各アイテムはrepodest、および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プロパティを指定する必要があり、オプションでstatepath、およびinstall_optionsプロパティを持つことができます。
lb__taps リスト [] インストールするLinuxbrewタップのリスト。各アイテムはnameプロパティを指定する必要があり、statepath、および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

プロジェクトについて

Installs linuxbrew, brew packages, and taps on Ubuntu/Debian.

インストール
ansible-galaxy install ctorgalson.linuxbrew
ライセンス
gpl-3.0
ダウンロード
145