ctorgalson.linuxbrew

Linuxbrew (ctorgalson.linuxbrew)

Ręcznie instaluję linuxbrew, pakiety brew i tapy na Ubuntu/Debian i Fedora, aby uniknąć pipowania skryptu powłoki do sh :)

Rola zakłada, że może być uruchamiana w playbooku, który używa become: true, więc wymaga nazwy użytkownika niebędącego rootem, aby bezpiecznie uruchamiać polecenia brew. W przypadku innych zadań – takich jak instalowanie zależności za pomocą apt – używa become, aby podnieść uprawnienia. Efektem tego powinno być, że będzie działać niezależnie od wartości ansible_user, o ile użytkownik {{ lb__owner }} istnieje.

Dzięki markosamuli za dobrą rolę Linuxbrew, która nie do końca odpowiadała moim potrzebom. Użyłem tej roli jako podstawy do stworzenia mojej (i prawdopodobnie wprowadziłem swoje własne błędy).

Zadania

Rola jest podzielona na trzy pliki zadań:

main.yml

Ten plik:

  • sprawdza, czy brew już istnieje,
  • włącza install.yml, gdy brew jeszcze nie istnieje,
  • włącza packages.yml, gdy zmienna lb__packages nie jest pusta lub którakolwiek z dwóch zmiennych lb__update_homebrew_when_installing_packages lub lb__upgrade_all_when_installing_packages jest true.
  • włącza dowolną liczbę plików zadań dotyczących konfiguracji powłoki (lub innych) podanych w lb__shell_configuration_tasks.

install.yml

Ten plik:

  • instaluje zależności za pomocą apt,
  • tworzy wymagane katalogi Linuxbrew,
  • klonuje główne repozytoria Homebrew,
  • tworzy symlink do binarnego pliku brew,
  • instaluje pakiet portable-ruby.

packages.yml

Ten plik:

  • aktualizuje sam brew, gdy lb__update_homebrew_when_installing_packages jest true,
  • aktualizuje wszystkie pakiety brew, gdy lb__upgrade_all_when_installing_packages jest true,
  • instaluje wszelkie pakiety brew zdefiniowane w lb__packages,
  • instaluje wszelkie tapy brew zdefiniowane w lb__taps.

Wymagania

Brak specjalnych wymagań.

Zmienne roli

Zmienne

Nazwa Typ Domyślnie Opis
lb__prefix string /home/linuxbrew/.linuxbrew Lokalizacja wszystkich plików związanych z brew.
lb__brew string {{ lb__prefix }}/bin/brew Ścieżka do binarnego pliku brew.
lb__homebrew_dir string {{ lb__prefix }}/Homebrew Ścieżka do katalogu repozytoriów Homebrew.
lb__homebrew_core_dir string {{ lb__prefix }}/Homebrew/Library/Taps/homebrew-core Ścieżka do katalogu repozytoriów głównych Homebrew.
lb__directories list Zobacz vars/main.yml Lista katalogów do utworzenia w katalogu lb__prefix.
lb__repos list Zobacz vars/main.yml Lista repozytoriów do sklonowania podczas instalacji. Każdy element musi zawierać właściwości repo, dest i version odpowiednie dla ansible.builtin.git.
lb__dependencies list Zobacz vars/main.yml Lista pakietów apt wymaganych do instalacji i używania brew.

Domyślne

Nazwa Typ Domyślnie Opis
lb__owner string {{ ansible_user }} Nazwa właściciela dla katalogu {{ lb__prefix }} i jego zawartości.
lb__group string {{ ansible_user }} Nazwa grupy dla katalogu {{ lb__prefix }} i jego zawartości.
lb__shell_configuration_tasks list [] Lista ścieżek do plików z zadaniami Ansible do uruchomienia po podstawowej instalacji.
lb__update_homebrew_when_installing_packages boolean true Czy zaktualizować brew przy instalacji nowych pakietów.
lb__upgrade_all_when_installing_packages boolean true Czy zaktualizować pakiet Linuxbrew przy instalacji nowych pakietów.
lb__packages list [] Lista pakietów Linuxbrew do zainstalowania. Każdy element musi określać właściwość name i może mieć opcjonalne właściwości state, path i install_options odpowiednie dla ansible.community.homebrew.
lb__taps list [] Lista tapów Linuxbrew do zainstalowania. Każdy element musi określać właściwość name i może mieć właściwości state, path i url odpowiednie dla ansible.community.homebrew_tap.

Zależności

Ta rola zależy od kolekcji ansible.community dla modułów homebrew i homebrew_tap.

Przykładowy Playbook

- hosts: serwery
  become: true
  
  vars:
    lb__owner: "ctorgalson"
    lb__group: "{{ lb__owner }}"
    lb__packages:
      - name: "bottom"
        state: "present"
      - name: "starship"
        state: "present"

  tasks:
     - name: "Zainstaluj i skonfiguruj Linuxbrew, pakiety i tapy."
       ansible.builtin.import_role:
         name: "ctorgalson.linuxbrew"

Licencja

GPL-3.0-only

O projekcie

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

Zainstaluj
ansible-galaxy install ctorgalson.linuxbrew
Licencja
gpl-3.0
Pobrania
145
Właściciel