thulium_drake.foreman
Konfiguracja Foremana za pomocą Ansible
Ta rola umożliwia skonfigurowanie serwera Foreman lub Satellite w organizacji z pewnymi treściami.
Ta rola wymaga następujących zbiorów Ansible, aby działać:
- 'theforeman.foreman' w wersji 3.4.0 lub wyższej
- 'ansible.utils' w wersji 2.6.0 lub wyższej
- 'ansible.posix' w wersji 1.4.0 lub wyższej
Testowane z Ansible 2.12 i wyższymi.
Ta rola obsługuje Foremana 3.2 / Katello 4.4 i nowsze lub Red Hat Satellite 6.11 i nowsze.
Inne wymagania na kontrolerze Ansible:
- python-netaddr (do zadań związanych z podsieciami)
Sprawdź przykłady inwentarza i playbooków tutaj dla dodatkowych wskazówek! Możesz także przeczytać mój artykuł na blogu.
Offline instalacja Satellite
Jeśli chcesz zainstalować Satellite za pomocą obrazu ISO do instalacji offline, upewnij się, że skonfigurowano repozytoria RHEL z obrazu ISO instalacyjnego lub lustra.
Widoki treści (CV), złożone widoki treści (COV) i publikowanie
Kiedy ta rola jest używana do tworzenia nowych widoków treści i kompozycji, stosowana jest następująca strategia:
- Widoki treści są tworzone z tą samą nazwą, co produkt, który zawierają.
- Repozytoria, które są nowo utworzone, będą synchronizowane po utworzeniu (asynchronicznie).
- Złożone widoki treści, które są nowo utworzone, będą promowane do wszystkich środowisk cyklu życia w organizacji.
Pomysł polega na tym, że COV są jedynymi rzeczami związanymi z klientami. Same podstawowe CV są obecne tylko w bibliotece i nie powinny być promowane do żadnego innego środowiska.
Wszystkie utworzone COV mają włączone automatyczne publikowanie, a przykładowe playbooki do 'tagowania' nowej wersji i publikowania są dostępne.
Odkrywanie hostów
Aby odkryć hosty, zarejestruj następujące rekordy w DNS, aby umożliwić FDI raportowanie do odpowiedniego serwera:
- Dla serwerów Foremana:
_x-foreman._tcp.dev.example.com 600 IN SRV 0 5 443 foreman.dev.example.com
- Dla inteligentnych proxy Foremana:
_x-foreman._tcp.dev.example.com 600 IN SRV 0 5 8443 fm-proxy.dev.example.com
Jeśli Twoje środowisko nie działa z tymi rekordami, możesz również ustawić foreman_discovery_image_autodetect na false. Użyje to domyślnych ustawień dla Foremana. Mogą one się nie powieść przy użyciu inteligentnych proxy.
Instalacja inteligentnych proxy
Niektóre z ustawień używanych dla inteligentnych proxy są współdzielone z serwerem Foreman. Aby uniknąć duplikacji ustawień, sugerowany jest następujący inwentarz:
[foreman]
foreman.infra.example.com
[foreman_proxies]
fm-proxy.dev.example.com
[foreman_infra]
[foreman_infra:children]
foreman
foreman_proxies
Następnie umieść wszystkie globalne ustawienia dla Foremana w group_vars dla foreman_infra, które będą dostępne zarówno dla serwera, jak i dla proxy. Możesz również utworzyć host_vars dla każdego systemu Foreman (serwera lub proxy), które zawierają specyficzne dla instancji ustawienia.
Ograniczenia, błędy i obejścia
Czasami program instalacyjny nie jest w stanie pomyślnie zakończyć konfiguracji usług Foreman. Zadania Ansible zostały skonfigurowane (chyba że używasz wersji Foreman/Satellite, która nie obsługuje --detailed-exitcodes) aby na to reagować.
Gdy wystąpi problem, możesz podjąć następujące kroki, aby zlokalizować problem:
- Uruchom
foreman-installer
ręcznie, nie są wymagane argumenty. To da ogólny kierunek, gdzie szukać. - Sprawdź logi w /var/log/foreman-installer.
- Zrestartuj usługi Foreman, czasami to 'resetuje' rzeczy, po czym Foreman pomyślnie zakończy instalator.
Dla szczególnych problemów patrz poniżej.
Informacje o wdrażaniu, odkrywaniu oraz UEFI vs. BIOS vs. iPXE
Testy wykazały, że różne ustawienia mogą mieć wpływ na to, czy host może się uruchomić z sieci.
Testowaliśmy następujące konfiguracje:
Odkrywanie:
KVM
- BIOS: działa z domyślnymi ustawieniami skonfigurowanymi przez tę rolę. Może być również używane z iPXE.
- UEFI: jest trochę problematyczne, możesz napotkać trudności z ładowaniem FDI z PXE, ponieważ TFTP może przekroczyć limit czasu. iPXE działa dobrze.
HyperV:
- Gen1 (BIOS): działa z domyślnymi ustawieniami skonfigurowanymi. Może być również używane z iPXE.
- Gen2 (UEFI): wymaga iPXE, musisz wyłączyć SecureBoot.
Wdrażanie systemu operacyjnego:
KVM
- BIOS: działa z domyślnymi ustawieniami skonfigurowanymi przez tę rolę. Może być również używane z iPXE.
- UEFI: użyj
pxe_loader: 'Grub2 UEFI'
z domyślnymi ustawieniami tej roli. Może być również używane z iPXE.
HyperV:
- Gen1 (BIOS): działa z domyślnymi ustawieniami skonfigurowanymi przez tę rolę do CentOS7, CentOS8 i nowsze wymagają Gen2.
- Gen2 (UEFI): wymaga iPXE, musisz wyłączyć SecureBoot.
Uruchamianie lokalne:
KVM
- BIOS: działa poprawnie. Może być również używane z iPXE.
- UEFI: użyj
pxe_loader: 'Grub2 UEFI'
z domyślnymi ustawieniami tej roli. iPXE może zawiesić się w menu systemu UEFI: https://community.theforeman.org/t/ipxe-does-not-boot-local-hard-disk-on-uefi/21437
HyperV:
- Gen1: działa poprawnie.
- Gen2: działa poprawnie, musisz wyłączyć SecureBoot.
Aby włączyć iPXE, ustaw foreman_deploy_ipxe: true
i użyj pxe_loader: 'None'
dla twoich systemów operacyjnych.
Błąd: Błąd przy tworzeniu systemów operacyjnych
Usuń wszystkie systemy operacyjne z Hosts -> Operating systems (nie możesz usunąć tego, w którym znajduje się serwer Foreman).
Ograniczenie: Zasoby z hasłami zawsze się zmieniają
Ponieważ moduły Foremana nie mogą zobaczyć aktualnego hasła ustawionego dla pól hasła, nie można ich porównać.
Dlatego zawsze się zmieniają (systemy operacyjne, dane poświadczeń repozytoriów upstream itd.). Może to spowodować dodatkowe działania w zależności od zmienionego zasobu. Jak dotąd nie okazało się to problematyczne, ale wykonanie play może zająć trochę więcej czasu z tego powodu.
Ograniczenie: Grupy hostów zawsze używają pierwszej tabeli partycji na liście
Ponieważ grupy hostów są połączonym wynikiem kluczy aktywacyjnych, systemów operacyjnych i cykli życia, możliwości konfiguracji są ograniczone. W momencie pisania tej roli skonfiguruje wszystkie grupy hostów z tą samą tabelą partycji.
Przykład wdrożenia z inną tabelą partycji pokazano poniżej:
# Tabela partycji poniżej jest ustawiona na ignorowanie
# wszystkich dysków z wyjątkiem pierwszego do automatycznego partycjonowania.
# Należy zauważyć, że nie wykrywa typów dysków (vd lub sd)
# więc musisz przydzielić hardcodowanego dysku do użycia.
foreman_partition_tables:
- name: 'Kickstart default first disk only'
os_family: 'Redhat'
layout: |
<%#
kind: ptable
name: Kickstart default first disk only
model: Ptable
description: Zarządzane przez Ansible, twoje zmiany zostaną utracone
%>
zerombr
clearpart --all --initlabel
ignoredisk --use-only=sda
autopart <%= host_param('autopart_options') %>
foreman_operating_systems:
- name: 'CentOS'
major_version: 7
arch:
- 'x86_64'
os_family: 'Redhat'
kickstart: true
kickstart_repo: 'CentOS7-Base'
partitions:
- 'Kickstart default first disk only'
root_pass: 'jakies_haslo'
parameters:
- name: 'autopart_options'
value: '--nohome'
ansible-galaxy install thulium_drake.foreman