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
brewjuż istnieje, - włącza
install.yml, gdybrewjeszcze nie istnieje, - włącza
packages.yml, gdy zmiennalb__packagesnie jest pusta lub którakolwiek z dwóch zmiennychlb__update_homebrew_when_installing_packageslublb__upgrade_all_when_installing_packagesjesttrue. - 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_packagesjesttrue, - aktualizuje wszystkie pakiety
brew, gdylb__upgrade_all_when_installing_packagesjesttrue, - instaluje wszelkie pakiety
brewzdefiniowane wlb__packages, - instaluje wszelkie tapy
brewzdefiniowane 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