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
, gdybrew
jeszcze nie istnieje, - włącza
packages.yml
, gdy zmiennalb__packages
nie jest pusta lub którakolwiek z dwóch zmiennychlb__update_homebrew_when_installing_packages
lublb__upgrade_all_when_installing_packages
jesttrue
. - 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
, gdylb__update_homebrew_when_installing_packages
jesttrue
, - aktualizuje wszystkie pakiety
brew
, gdylb__upgrade_all_when_installing_packages
jesttrue
, - instaluje wszelkie pakiety
brew
zdefiniowane wlb__packages
, - instaluje wszelkie tapy
brew
zdefiniowane wlb__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
Installs linuxbrew, brew packages, and taps on Ubuntu/Debian.
ansible-galaxy install ctorgalson.linuxbrew