Integrace do OS

Skript iam-firstboot se instaluje jako RPM balíček do operačního systému. Své soubory má uloženy v /opt/iam-firstboot/VERZE.

Balíček instaluje své soubory do /opt/…​ a je přes Alternatives symlinkován do adresářů co jsou v PATH. Skript je v alternatives veden v auto režimu a při upgradech appliance je samovolně přepínán při instalaci novější verze balíčku. V budoucnosti bude v režimu manual a bude přepínán upgradovacím nástrojem.

Šablony

Skript pro některé akce používá šablonovací systém Jinja2. Šablony jsou součástí RPM balíčku. V procesu vývoje jsou šablony součástí Git repozitáře balíčku a verzují se spolu s ním.

Skript je, bez ohledu na to jak je spuštěn, vždy schopen najít fyzickou cestu (bez ohledu na symbolické linky) do adresáře, kde je umístěn. To je důležité právě pro nalezení správných šablon.

  1. Nalezení fyzické cesty ke skriptu. Proměnné this_script_path a this_script_dir je možné používat v celém těle skriptu.

this_script_path = os.path.realpath(__file__)
this_script_dir = os.path.dirname(this_script_path)

Závislosti

Softwarové závislosti skriptu jsou vedeny jako závislosti RPM balíčku a jsou automaticky instalovány balíčkovacím systémem.

Build

Vzhledem k tomu, že jde o Python skript, nedochází ke "klasickému" buildu ze zdrojových kódů. V rámci sestavení jsou skript, šablony a "metadata" zabaleny do RPM balíčku, definice je uložena ve .spec file v Gitu, stejně jako sestavovací skript pkg. Build je prováděn pomocí infrastruktury popsané v Appliance Infrastructure dokumentaci.