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

Nate Coraor Helena Rasche

Zobacz współtwórców na GitHubie

O projekcie

Install and configure CernVM-FS (CVMFS)

Zainstaluj
ansible-galaxy install galaxyproject.cvmfs
Licencja
Unknown
Pobrania
63.2k
Właściciel
Galaxy is an open, web-based platform for data-intensive research.