Sérsniðin hugbúnaður úr frumkóðageymslum
OpenFactory uppskriftir geta vísað í Git geymslu sem sérsniðnum pakka-inntaki á studdum myndbyggjum. Þetta er birgðakeðjutæk leið: geymslan, leysta endurskoðunin, pökkunarleiðbeiningar, byggingar háðar og myndaður pakki þurfa yfirferð.
Stuðningur fer eftir markmiði. Sumir byggjarar hafna frumkóða-pakka byggingum, þar með talið núverandi Raspberry Pi og Proxmox leiðir. Staðfestu framboð í normaliseruðu uppskriftinni og byggingaráætluninni áður en þú lofar að pakki verði myndaður.
Uppskriftarform
Færslur fyrir sérsniðna pakka eru undir os.custom_packages:
{
"os": {
"custom_packages": [
{
"name": "my-agent",
"git_url": "https://github.com/example/my-agent.git",
"branch": "release-1.x"
}
]
}
}Skemað tekur við greinanafni, ekki óbreytanlegu commit reit. Fyrir stýrt release skaltu skrá nákvæman commit sem byggingin leysti og gera þann commit hluta af varðveittri uppruna. Eitt hreyfanlegt grein nafn er ekki endurtekið inntak.
Undirbúðu geymsluna
Núverandi pakka leiðin býst við innfæddum pökkunar lýsigögnum sem henta markmiðinu. Algeng dæmi eru Debian debian/ mappa eða RPM spec. Nákvæm hegðun byggjara og studdar útgáfur markmiðs geta breyst, svo staðfestu lágmarks pakka í útsettum umhverfi frekar en að treysta á fasta samhæfistöflu.
Fyrir Debian pökkun skaltu að minnsta kosti fara yfir:
debian/controlfyrir auðkenni frumkóða/tvíundar og háðar;debian/changelogfyrir útgáfu pakka;debian/rulesog önnur keyranleg maintainer skriftur;- uppsetningar yfirlýsingar og systemd einingar; og
- leyfisveitingu og innifalda efni frá þriðja aðila.
Fyrir RPM pökkun skaltu fara yfir spec heimildir, byggingarkröfur, scriptlets, skráalista og leyfis lýsigögn.
Gerðu ekki ráð fyrir að eignarhald á geymslu geri byggingar skriftur öruggar. Pakka byggingar keyra ótraustan frumkóða og pökkunar röksemdarfærslu innan einangrunarmörka byggingar innviða.
Aðrar pakka stýringar
Innfæddir pakkar
Notaðu os.packages fyrir pakka sem valin dreifing eða skýrt stillt geymsla veitir nú þegar:
{
"os": {
"packages": ["curl", "jq"]
}
}Pakka yfirskrifanir
os.package_overrides getur lýst yfir add, remove eða replace:
{
"os": {
"package_overrides": [
{"name": "nano", "action": "replace", "replacement": "neovim"},
{"name": "telnet", "action": "remove"}
]
}
}Override sannar ekki að háða leysing virti það. Athugaðu lokaeignaskrá pakka og absence/presence assertions.
Viðbótar geymslur
os.extra_repos er ítarlegt inntak. Bættu ekki við óundirrituðu HTTP geymslu eins og sýnt er í eldri dæmum. Samþykkt geymslu samþætting þarf HTTPS flutning, festa undirritunar lykil, framfylgni undirritana, release lýsigögn sem henta package manager, og skráð eignarhald og uppfærslustefnu. Ef núverandi byggjari getur ekki lýst þessum trauststýringum skaltu ekki nota geymsluna.
Samþykktar sönnun
Fyrir hvern sérsniðinn pakka skaltu varðveita:
- geymslu URL og leystan commit;
- yfirferð á frumkóða og tilkynntri leyfi;
- skyndimynd af byggingarumhverfi og háðum;
- byggingar annála og nafn/útgáfu/vinnuvél myndaðs pakka;
- pakka digest og sönnun um undirritun geymslu þar sem við á;
- lokaeignaskrá myndar sem sýnir pakka uppsettan;
- service eða keyranlega skrá smoke próf; og
- hegðun við fjarlægingu og uppfærslu.
Tókst frumkóða pakka stig nægir ekki. Myndbygging getur síðar mist ekki að nota pakka, og uppsettur pakki getur samt verið ónothæfur.
Úrræðaleit
- Pökkunar lýsigögn hafnað: staðfestu innfæddan pakka staðbundið með sömu dreifingu release og vinnuvél.
- Byggingar háð vantar: notaðu háðar úr samþykktum geymslum fyrir það markmið; sóttu ekki handahófskenndar tvíundir í maintainer skriftu án þess að segja til.
- Pakki vantar í mynd: berðu saman nafn myndaðs tvíundar pakka við normaliseruð uppsetningarbeiðni og lokaeignaskrá.
- Útgáfa breyttist ekki: uppfærðu innfædd lýsigögn útgáfu og staðfestu að nýr frumkóða commit hafi verið leystur.
- Service mistókst: skoðaðu unit, runtime háðar, heimildir og guest annála; bættu við hegðunar stigs assertion áður en endurbygging.