galaxyproject.cvmfs
CVMFS
Zainstaluj i skonfiguruj CernVM-FS (CVMFS), szczególnie dla serwerów Galaxy.
Wymagania
Na systemach Enterprise Linux (ansible_os_family == "RedHat"
), zakłada się, że włączyłeś Dodatkowe Pakiety dla Enterprise Linux (EPEL) dla zależności CVMFS. Jeśli musisz włączyć EPEL, geerlingguy.repo-epel może łatwo to dla Ciebie zrobić.
Zmienne Roli
Wszystkie zmienne są opcjonalne. Jednak, jeśli nie zostaną ustawione, rola zasadniczo nic nie zrobi. Zobacz domyślne i przykładowy playbook dla przykładów.
Klient Galaxy
Poza cvmfs_role
, jak opisano poniżej, administratorzy Galaxy najprawdopodobniej będą musieli ustawić zmienną galaxy_cvmfs_repos_enabled
(domyślnie wyłączoną), co automatycznie konfiguruje klienta CVMFS dla repozytoriów CVMFS galaxyproject.org.
Wartość galaxy_cvmfs_repos_enabled
może być równa config-repo
lub każdej wartości, która ocenia się jako true
(lub false
, aby explicite wyłączyć, chociaż to jest domyślna wartość). Rekomenduje się użycie config-repo
, ponieważ powoduje to, że rola instaluje tylko minimalną konfigurację potrzebną do zamontowania repozytorium CVMFS cvmfs-config.galaxyproject.org
, a następnie używa wsparcia dla Repozytoriów Konfiguracyjnych, aby uzyskać konfiguracje dla innych repozytoriów CVMFS galaxyproject.org. To zapewnia, że zawsze będziesz mieć najnowsze konfiguracje dla wszystkich repozytoriów CVMFS galaxyproject.org.
Ustawienie galaxy_cvmfs_repos_enabled
na config-repo
nadpisuje wartość cvmfs_config_repo
, ponieważ można skonfigurować tylko jedno domyślne repozytorium konfiguracyjne na kliencie.
Ustawienie galaxy_cvmfs_repos_enabled
na jakąkolwiek inną prawdziwą wartość spowoduje, że rola stworzy statyczną konfigurację, w której pełne konfiguracje dla każdego repozytorium CVMFS galaxyproject.org będą zainstalowane na docelowym hoście. Ta opcja jest zachowana w celach związanych z kompatybilnością.
Możesz nadpisać domyślne wartości dla cvmfs_keys
, cvmfs_server_urls
i cvmfs_repositories
, dodając galaxy_
do nazw zmiennych. Zobacz domyślne w celu uzyskania szczegółów.
Jeśli galaxy_cvmfs_repos_enabled
nie jest ustawione, pełna konfiguracja repozytoriów, które nie są Galaxy, może być wykonana za pomocą zestawu zmiennych opisanych poniżej.
Zmienne klienta lub współdzielonego klienta/serwera
zmienna | typ | opis |
---|---|---|
cvmfs_role |
string | Typ hosta CVMFS: client , stratum0 , stratum1 , lub localproxy . Alternatywnie, możesz umieścić hosty w grupach cvmfsclients , cvmfsstratum0servers , cvmfsstratum1servers , i cvmfslocalproxies . Kontroluje, jakie pakiety są instalowane i jaka konfiguracja jest wykonywana. |
cvmfs_keys |
lista słowników | Klucze do zainstalowania na hostach wszystkich typów. |
cvmfs_server_urls |
lista słowników | Adresy URL serwerów CVMFS, wartość CVMFS_SERVER_URL w /etc/cvmfs/domain.d/<domain>.conf . |
cvmfs_repositories |
lista słowników | Konfiguracje repozytoriów CVMFS, wartość CVMFS_REPOSITORIES w /etc/cvmfs/default.local plus dodatkowe ustawienia w /etc/cvmfs/repositories.d/<repository>/{client,server}.conf . |
cvmfs_config_repo |
słownik | Konfiguracja Repozytorium Konfiguracyjnego, zobacz wartość galaxy_cvmfs_config_repo w domyślnych dla składni. |
cvmfs_quota_limit |
liczba całkowita w MB | Rozmiar pamięci podręcznej klienta CVMFS. Domyślnie to 4000 . |
cvmfs_upgrade_client |
boolean | Uaktualnij CVMFS na klientach do najnowszej wersji, jeśli już jest zainstalowany. Domyślnie to false . |
cvmfs_preload_install |
boolean | Zainstaluj skrypt cvmfs_preload do wstępnego ładowania pamięci podręcznej CVMFS. |
cvmfs_preload_path |
ścieżka | Katalog, w którym powinien być zainstalowany cvmfs_preload . |
cvmfs_install_setuid_cvmfs_wipecache |
boolean | Zainstaluj binarny plik setuid na klientach, który pozwala nieuprzywilejowanym użytkownikom wykonać cvmfs_config wipecache . Tylko EL (został dostarczony źródło). |
cvmfs_install_setuid_cvmfs_remount_sync |
boolean | Zainstaluj binarny plik setuid na klientach, który pozwala nieuprzywilejowanym użytkownikom wykonać cvmfs_talk remount sync . Tylko EL (został dostarczony źródło). |
Złożone zmienne (lista słowników) mają następujące składnie:
cvmfs_keys:
- path: 'absolutna ścieżka do repozytorium key.pub'
owner: 'użytkownik posiadający plik klucza (domyślnie: root)'
key: |
-----BEGIN PUBLIC KEY-----
MIIBIjAN...
cvmfs_server_urls:
- domain: 'macierzysty domena repozytorium'
urls:
- 'URL repozytorium'
cvmfs_repositories:
- repository: 'nazwa repozytorium'
stratum0: 'nazwa hosta stratum 0'
owner: 'użytkownik posiadający repozytorium (domyślnie: root)'
key_dir: 'ścieżka do katalogu zawierającego klucze repozytoriów (domyślnie: /etc/cvmfs/keys)'
server_options:
- KEY=val
client_options:
- KEY=val
Dla Stratum 0 / Menedżerów Wydań, możesz automatycznie usunąć starsze zrzuty za pomocą prune_snapshots_time
, skrzyni, która ma klucze odpowiadające opcji modułu cron. Jeśli prune_snapshots_time
jest unset, to zrzuty nie są automatycznie usuwane.
cvmfs_repositories:
- repository: repo.example.org
owner: user1
prune_snapshots_count: 20
prune_snapshots_time:
special_time: daily
Opcja per-repo prune_snapshots_count
domyślnie przyjmuje wartość cvmfs_stratum0_prune_snapshots_count
w domyślnych/main.yml jeśli jest unset.
Zmienne serwera
zmienna | typ | opis |
---|---|---|
cvmfs_private_keys |
lista słowników | Klucze do zainstalowania na hostach Stratum 0. Oddzielone od cvmfs_keys w celu uniknięcia duplikacji i zachowania bezpieczeństwa. |
cvmfs_config_apache |
boolean | Skonfiguruj Apache na serwerach Stratum 0 i 1. Jeśli wyłączone, musisz skonfigurować to samodzielnie. Domyślnie to true . |
cvmfs_manage_firewall |
boolean | Próba skonfigurowania firewalld (EL) lub ufw (Debian), aby zezwolić na ruch do skonfigurowanych portów. Domyślnie to false . |
cvmfs_squid_conf_src |
ścieżka | Ścieżka do szablonu pliku konfiguracyjnego Squid (dla serwerów Stratum 1 i lokalnych serwerów proxy). Domyślne są w katalogu templates/ roli. |
cvmfs_stratum0_http_ports |
lista liczb całkowitych | Port(y), które Apache na serwerach Stratum 0 powinien skonfigurować do nasłuchu na. Domyślnie to 80 . |
cvmfs_stratum1_http_ports |
lista liczb całkowitych | Port(y), które Squid na serwerach Stratum 1 powinien skonfigurować do nasłuchu na. Domyślnie 80 oraz 8000 . |
cvmfs_stratum1_apache_port |
liczba całkowita | Port, który Apache na serwerach Stratum 1 powinien skonfigurować do nasłuchu na. Domyślnie 8008 . |
cvmfs_stratum1_cache_mem |
liczba całkowita w MB | Ilość pamięci, jaką Squid powinien używać do cache'owania. Domyślnie to 128 . |
cvmfs_stratum1_cache_dir |
lista słowników | |
cvmfs_localproxy_http_ports |
lista liczb całkowitych | Port(y), które Squid na lokalnych serwerach proxy powinien skonfigurować do nasłuchu na. Domyślnie 3128 . |
cvmfs_upgrade_server |
boolean | Uaktualnij CVMFS na serwerach do najnowszej wersji, jeśli już jest zainstalowany. Domyślnie to false . |
cvmfs_srv_device |
ścieżka | Urządzenie blokowe, na którym należy stworzyć system plików i zamontować dane CVMFS. Domyślnie unset. |
cvmfs_srv_fstype |
string | System plików, który ma być utworzony na cvmfs_srv_device . Domyślnie ext4 . |
cvmfs_srv_mount |
ścieżka | Ścieżka do zamontowania wolumenu danych CVMFS. Domyślnie to /srv (ale jest ignorowane, jeśli cvmfs_srv_device jest unset). |
cvmfs_union_fs |
string | Typ systemu plików unii (overlayfs lub aufs ) dla nowych repozytoriów na serwerach Stratum 0. |
cvmfs_numfiles |
liczba całkowita | Ustaw maksymalną liczbę otwartych plików w /etc/security/limits.conf . Przydatne z opcją klienta CVMFS_NFILES na serwerach Stratum 0. |
Zależności
Brak.
Przykładowy Playbook
Skonfiguruj wszystkie hosty jako klientów CVMFS z konfiguracjami dla repozytoriów CVMFS Galaxy:
- name: CVMFS
hosts: all
vars:
cvmfs_role: client
galaxy_cvmfs_repos_enabled: config-repo
roles:
- geerlingguy.repo-epel
- galaxyproject.cvmfs
Utwórz Stratum 1 (lustrzane odbicie) repozytoriów CVMFS Galaxy i skonfiguruj klientów, aby preferowali Twoje Stratum 1 (zakładając, że skonfigurowałeś hosty w grupach cvmfsclients
i cvmfsstratum1servers
):
- name: CVMFS
hosts: cvmfsclients:cvmfsstratum1servers
vars:
cvmfs_srv_device: /dev/sdb
galaxy_cvmfs_repos_enabled: true
# nadpisz domyślną wartość
galaxy_cvmfs_server_urls:
- domain: galaxyproject.org
urls:
- "http://cvmfs.example.org/cvmfs/@fqrn@"
- "http://cvmfs1-psu0.galaxyproject.org/cvmfs/@fqrn@"
- "http://cvmfs1-iu0.galaxyproject.org/cvmfs/@fqrn@"
- "http://cvmfs1-tacc0.galaxyproject.org/cvmfs/@fqrn@"
- "http://cvmfs1-mel0.gvl.org.au/cvmfs/@fqrn@"
- "http://cvmfs1-ufr0.galaxyproject.eu/cvmfs/@fqrn@"
roles:
- galaxyproject.cvmfs
Utwórz własną infrastrukturę CVMFS. Uruchom raz bez kluczy (nowe klucze będą generowane przy tworzeniu repozytoriów):
- name: CVMFS
hosts: cvmfsstratum0servers
vars:
cvmfs_numfiles: 4096
cvmfs_server_urls:
- domain: example.org
urls:
- "http://cvmfs0.example.org/cvmfs/@fqrn@"
cvmfs_repositories:
- repository: foo.example.org
stratum0: cvmfs0.example.org
key_dir: /etc/cvmfs/keys/example.org
server_options:
- CVMFS_AUTO_TAG=false
- CVMFS_GARBAGE_COLLECTION=true
- CVMFS_AUTO_GC=false
client_options:
- CVMFS_NFILES=4096
- repository: bar.example.org
stratum0: cvmfs0.example.org
key_dir: /etc/cvmfs/keys/example.org
roles:
- galaxyproject.cvmfs
Gdy klucze zostaną utworzone, dodaj je do cvmfs_keys
i uruchom znowu, ale jako hosts: all
i definując cvmfs_keys
jako:
- name: CVMFS
vars:
cvmfs_keys:
- path: /etc/cvmfs/keys/example.org/foo.example.org.pub
key: |
-----BEGIN PUBLIC KEY-----
MIIBIjAN...
- path: /etc/cvmfs/keys/example.org/bar.example.org.pub
key: |
-----BEGIN PUBLIC KEY-----
MIIBIjAN...
Licencja
MIT
Informacje o autorze
ansible-galaxy install galaxyproject.cvmfs