Linee guida per la pubblicazione

Per creare modelli, stack, immagini ed elenchi per Oracle Cloud Infrastructure Marketplace, assicurati di rispettare tutte le linee guida pertinenti.

argomenti:
Nota

La migrazione del portale partner alla console di Oracle Cloud verrà eseguita. Per ulteriori informazioni, vedere Migrazione del portale partner alla console di Oracle Cloud.

Informazioni sulle linee guida per i publisher del Marketplace

OCI consente ai partner Oracle di distribuire le proprie soluzioni ai clienti OCI tramite Oracle Cloud Marketplace. I clienti Oracle si fidano che queste soluzioni siano create e mantenute in modo da garantire che la loro sicurezza e privacy siano la priorità assoluta.

I clienti si aspettano inoltre che le soluzioni vengano fornite come promesso, includano una documentazione eccellente e offrano un'esperienza di supporto efficace e a basso attrito. Questo documento descrive la barra minima richiesta dagli Oracle Partner per l'inclusione in Oracle Cloud Marketplace. Siete incoraggiati a superare queste specifiche, ove possibile. Le soluzioni che includono eccezioni a questi standard devono essere esaminate e approvate da Oracle.

Parola chiave

Questo documento utilizza parole chiave come definito da IETF RFC 2119. Per ulteriori informazioni, vedere https://www.ietf.org/rfc/rfc2119.txt.

  • Must - Questa parola, o i termini "Obbligatorio" o "Dovrebbe", significa che la definizione è un requisito assoluto della specifica.
  • Non deve - Questa frase, o la frase "Non deve", significa che la definizione è un divieto assoluto della specifica.
  • Dovrebbe - Questa parola, o l'aggettivo "Consigliato", significa che possono esistere validi motivi in particolari circostanze per ignorare un particolare elemento, ma le implicazioni complete devono essere comprese e attentamente ponderate prima di scegliere un corso diverso.
  • Non dovrebbe - Questa frase, o la frase "Non raccomandato" significa che ci possono essere validi motivi in particolari circostanze in cui il particolare comportamento è accettabile o addirittura utile, ma le implicazioni complete dovrebbero essere comprese e il caso attentamente valutato prima di implementare qualsiasi comportamento descritto con questa etichetta.
  • Maggio - Questa parola, o l'aggettivo "opzionale", significa che un elemento è veramente facoltativo. Un fornitore può scegliere di includere l'articolo perché un determinato marketplace lo richiede o perché il fornitore ritiene che migliori il prodotto mentre un altro fornitore potrebbe omettere lo stesso articolo. Un'implementazione che non include una particolare opzione deve essere preparata a interoperare con un'altra implementazione che include l'opzione, anche se forse con funzionalità ridotte. Allo stesso modo, un'attuazione che include una particolare opzione deve essere preparata a interoperare con un'altra implementazione che non include l'opzione (tranne, ovviamente, per la funzione che l'opzione fornisce).

Livello severità vulnerabilità

Laddove vi sia un riferimento alla vulnerabilità della sicurezza in questa sezione, il riferimento è al sistema di classificazione CVSS (Common Vulnerability Scoring System) v3.0. Per ulteriori informazioni su CVSS v3.0, vedere https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator.

Sicurezza

La panoramica sulla sicurezza di Oracle Cloud Infrastructure afferma che:

We [Oracle] believe that a dynamic security-first culture is vital to building a successful 
security-minded organization. We have cultivated a holistic approach to security culture in which 
all our team members internalize the role that security plays in our business and are
actively engaged in managing and improving our products' security posture. We have also
implemented mechanisms that assist us in creating and maintaining a security-aware culture.

Devi leggere e comprendere l'intero approccio alla sicurezza di Oracle Cloud Infrastructure. Vedere Oracle Cloud Infrastructure Security Guide nella documentazione di Oracle Cloud Infrastructure.

Devi mantenere una cultura prima la sicurezza che comprenda e valorizzi la fiducia dei nostri clienti comuni.

Comandi

  • È necessario mantenere la consapevolezza degli avvisi e degli avvisi di sicurezza che hanno un impatto sulle soluzioni. Ecco alcune fonti comuni di avvisi di sicurezza:
    • SecurityFocus gestisce gli avvisi recenti per molti prodotti open source e commerciali. https://www.securityfocus.com/
    • Il database nazionale delle vulnerabilità. https://nvd.nist.gov/vuln
    • US-CERT e Industrial Control Systems CERT (ICS-CERT) pubblicano riepiloghi aggiornati a intervalli regolari sugli incidenti di sicurezza ad alto impatto più frequenti. https://www.us-cert.gov/ics
    • Full Disclosure all'indirizzo SecLists.org è un forum pubblico e neutrale rispetto ai fornitori per una discussione dettagliata delle vulnerabilità e delle tecniche di sfruttamento. https://seclists.org/fulldisclosure/
    • Il CERT/CC (Computer Emergency Readiness Team Coordination Center) contiene informazioni aggiornate sulle vulnerabilità per i prodotti più diffusi. https://www.cert.org
  • Ti consigliamo di controllare gli aggiornamenti della piattaforma Oracle Cloud Infrastructure che potrebbero avere un impatto sulle immagini pubblicate.
  • Devi notificare a OCI entro 3 giorni lavorativi qualsiasi vulnerabilità appena scoperta che influisce sulle tue soluzioni con una valutazione CVSS pari o superiore a 9.0.
  • Devi notificare a Oracle Cloud Infrastructure entro 5 giorni lavorativi qualsiasi vulnerabilità appena scoperta che influisce sulle tue soluzioni con una valutazione CVSS compresa tra 7.0 e 8.9.
  • Devi notificare a OCI entro 20 giorni lavorativi tutte le nuove vulnerabilità scoperte che influiscono sulle tue soluzioni con una valutazione CVSS compresa tra 4.0 e 6.9.
  • È necessario pubblicare le soluzioni aggiornate che mitigano le vulnerabilità appena scoperte in modo tempestivo.
  • È necessario consentire ai clienti di mantenere aggiornate le proprie soluzioni per proteggersi dalle nuove vulnerabilità scoperte. Alcuni modelli comuni sono:
    • Applicazione automatica degli aggiornamenti di sicurezza.
    • Consenti a un cliente di eseguire un comando per applicare aggiornamenti di sicurezza.
    • Fornire un processo che consente a un cliente di sostituire qualsiasi distribuzione corrente con una versione aggiornata. Questo processo dovrebbe essere sufficientemente basso in modo che un cliente non sia scoraggiato dall'esecuzione del lavoro richiesto.
  • È necessario pubblicare le soluzioni aggiornate con aggiornamenti di sicurezza generali su base trimestrale.
  • Se l'utente potrebbe richiedere l'esecuzione di un accordo di non divulgazione prima di divulgare una vulnerabilità a Oracle, è necessario aver sottoscritto un accordo di riservatezza Oracle (CDA) prima della pubblicazione della prima immagine. Il tuo team Oracle Partner ti assisterà in questo processo.

Linee guida per gli elenchi

Durante la creazione degli elenchi delle applicazioni, assicurarsi di avere familiarità con le linee guida pertinenti e di rispettarle.

Linee guida obbligatorie

Le seguenti linee guida sono obbligatorie per gli elenchi di applicazioni in Oracle Cloud Infrastructure Marketplace. Ogni linea guida deve essere seguita. Prima di essere approvato, ogni elenco di applicazioni viene convalidato in base a ciascuna di queste linee guida.

  • Il nome dell'app non può superare i 80 caratteri. Per una visualizzazione ottimale, deve essere al massimo di 36 caratteri.
  • Il nome dell'app deve essere chiaro, conciso e privo di errori ortografici e grammaticali. Non deve avere interruzioni di riga.
  • Il titolo deve indicare chiaramente lo scopo della domanda. Deve essere descritto in due righe o meno ed essere privo di errori ortografici e grammaticali.
  • Il carattere/spazio nell'elenco deve essere coerente.
  • Tutti i testi devono essere privi di errori ortografici o grammaticali.
  • La descrizione deve essere completa e catturare l'audience/tipo di utente target e presentare perché l'annuncio è prezioso.
  • Tutti i collegamenti devono puntare alle posizioni corrette e aprire in una nuova scheda o finestra.
  • Il testo incluso in icone, banner, screenshot o video deve essere leggibile.
  • Le immagini non devono essere sfocate o allungate.
  • I documenti correlati devono fornire informazioni coerenti per consentire agli utenti di:
    1. Avviare un'istanza dal Marketplace.
    2. Connettersi all'istanza.
    3. Impostare o avviare l'applicazione.
  • La sezione Supporto deve contenere dettagli di contatto accurati per consentire al cliente di coinvolgere il supporto dei partner. Questi dati di contatto devono contenere un numero di telefono o un indirizzo e-mail accurato.
  • I requisiti di sistema devono contenere la lista dei componenti richiesti di Oracle Cloud Infrastructure, incluse le forme di computazione, le regole di sicurezza, i criteri IAM, i volumi a blocchi, le VNIC secondarie e così via.
  • Le condizioni d'uso devono essere incluse nel pacchetto di installazione dell'app ed essere prive di errori ortografici o grammaticali. Il nome delle condizioni d'uso deve essere nel caso del titolo. I collegamenti nelle Condizioni d'uso devono puntare alle posizioni corrette e aprirli in una nuova scheda o finestra.
  • La versione del pacchetto di installazione dell'applicazione deve corrispondere a quella specificata in qualsiasi altra immagine o testo correlato per questo pacchetto.
  • L'utente deve essere in grado di avviare, connettere e configurare l'applicazione e l'infrastruttura correlata utilizzando le istruzioni incluse nelle sezioni Utilizzo e Documenti correlati.
  • Ogni soluzione pubblicata include un set di documentazione rivolta al cliente. Questa documentazione:
    • Deve includere istruzioni importanti e dettagliate per la connessione a un'istanza.
    • È necessario includere la documentazione sull'uso o un collegamento alla documentazione.
    • È necessario includere i dettagli del supporto o un collegamento a tali dettagli.
    • È necessario elencare le forme compatibili.
    • È necessario documentare tutte le porte di rete aperte per impostazione predefinita nell'istanza.
  • Conferma: l'utente accetta di non pubblicare elenchi di publisher a pagamento su Oracle Cloud Marketplace se l'acquisto di prodotti e servizi e/o la fornitura di servizi correlati al cliente possono essere finanziati in tutto o in parte da medicare, medicaid o qualsiasi altro programma sanitario finanziato a livello federale o statale.

Linee guida consigliate

Le seguenti linee guida possono essere considerate le migliori pratiche da seguire quando possibile.

  • Le note di rilascio devono essere specificate come punti elenco con interruzioni di riga appropriate.
  • I documenti correlati dovrebbero contenere informazioni su come acquistare una licenza, se necessario.

Linee guida generali

Ecco alcune linee guida generiche per gli elenchi di tutti i tipi. Per le linee guida specifiche degli elenchi di applicazioni o delle immagini, vedere la sezione pertinente.

  • Per garantire che il contenuto della scheda descrittiva si adatti correttamente allo stile multipiattaforma di Oracle Cloud Marketplace, è consentita solo la formattazione di base nelle sezioni della descrizione. Se il contenuto viene copiato da un'altra origine RTF (ad esempio Microsoft Word), assicurarsi che eventuali stili aggiuntivi vengano rimossi prima di sottomettere l'elenco per la revisione.
  • Si consiglia di incollare il contenuto in testo normale per evitare di includere stili e formattazione nascosti. L'adesione a queste opzioni di formattazione di base garantirà la corretta visualizzazione del contenuto dell'elenco su più dispositivi e piattaforme.
  • L'uso dei marchi Oracle all'interno del contenuto della scheda descrittiva (ad esempio i nomi dei prodotti Oracle) deve essere conforme alle Regole per l'uso di terze parti per i marchi Oracle.
  • L'uso dei logo Oracle all'interno del contenuto della scheda descrittiva (ad esempio infografiche e screenshot) deve essere conforme alle Regole per l'uso di terze parti per i logo Oracle.
  • Per qualsiasi immagine come loghi, icone o banner:
    • Assicurarsi che le dimensioni delle immagini corrispondano alle dimensioni specificate.
    • Salva le immagini nel formato di file specificato con la compressione.
    • Assicurarsi che la dimensione del file immagine sia compresa nella dimensione file specificata.
    • Il banner deve essere di 1160 pixel (larghezza) di 200 pixel (altezza), un massimo di 10 MB e deve essere un file BMP, GIF, JPEG (JPG) o PNG.
    • Il logo della società deve essere di 115 pixel per 115 pixel, un massimo di 5 MB e deve essere un file BMP, GIF, JPEG (JPG) o PNG.
    • L'icona deve essere di 130 pixel per 130 pixel, un massimo di 5 MB e deve essere un file BMP, GIF, JPEG (JPG) o PNG.
    • Le icone delle applicazioni devono essere distintive e uniche. Non inviare più richieste con la stessa icona.
    • Non utilizzare logo o marchi Oracle nelle icone dell'applicazione. Assicurarsi di disporre dei diritti di utilizzo per qualsiasi immagine di terze parti utilizzata.
  • Il contenuto della sezione Descrizione deve fornire una panoramica generale dell'applicazione. Deve descrivere il valore e il vantaggio che ha il cliente di eseguire/ospitare l'applicazione su Oracle Cloud.
  • Una descrizione lunga deve essere preceduta da una descrizione breve. Non ripetere la descrizione breve nella sezione della descrizione lunga.
  • La descrizione non deve evidenziare né fare riferimento a "Oracle Validated Integration". Il programma Oracle Validated Integration (OVI) è applicabile solo alle soluzioni on-premise e non a Oracle Cloud.
  • Nel campo Informazioni sull'uso:
    • Includere un collegamento a una guida introduttiva contenente i dettagli completi richiesti dagli utenti per iniziare.
    • Includere collegamenti a qualsiasi documentazione tecnica, fogli di dati, guide utente e altri documenti correlati (inclusi quelli specificati nella sezione Documenti correlati).
    • Elencare le porte che devono essere aperte. Aggiungere un collegamento quale "Come configurare le porte aperte" che descrive i passi per aprire le porte utilizzando la console di Oracle Cloud Infrastructure.
  • Nel campo Schermate e video, per gli screenshot:
    • Si consigliano almeno due screenshot.
    • Durante lo screenshot, nascondere le barre degli strumenti e i menu del browser. Utilizzare la modalità schermo intero del browser.
    • Le dimensioni consigliate per gli screenshot sono 640 pixel (larghezza) x 480 pixel (altezza). Altre dimensioni adatte includono 1024x768 e 1200x900. Le immagini più grandi devono essere ritagliate o ridimensionate.
    • Per ottenere risultati ottimali, le immagini devono essere create con un rapporto di aspetto nativo 4:3. Per le immagini che non si adattano alle proporzioni 4:3, come gli screenshot delle app per telefoni cellulari, riempire l'immagine con uno sfondo colorato o trasparente appropriato per adattarsi alle dimensioni dell'immagine richieste. Utilizzare un editor di immagini per aggiungere il riempimento.
    • Gli screenshot devono essere al massimo 5 MB e devono essere un file BMP, GIF, JPEG (JPG) o PNG.
    • Le immagini caricate vengono automaticamente ridimensionate alle miniature di 240 x 180 pixel nella pagina principale dell'elenco.
    • Le immagini caricate vengono ridimensionate automaticamente per adattarsi al visualizzatore multimediale da 600 x 450 pixel.
    Per i video:
    • Includi un video dimostrativo come primo elemento nell'elenco nel campo Schermate e video.
    • I video promozionali ospitati su YouTube o Vimeo possono essere incorporati direttamente nell'elenco degli screenshot e nel visualizzatore multimediale.
    • L'indirizzo URL del video deve iniziare con http:// o con https://
    • Il video dimostrativo principale dovrebbe essere breve e dettagliato, concentrandosi sulle funzionalità principali dell'applicazione e sul valore dell'applicazione/integrazione in Oracle Cloud.
    • Video più lunghi e contenuti promozionali possono essere inclusi come video aggiuntivi.
  • Nel campo Documenti correlati:
    • L'aggiunta di una scheda tecnica specifica per l'integrazione di Oracle Cloud è un requisito minimo.
    • I data sheet devono essere specifici per la release dell'applicazione abilitata per Oracle Cloud.
    • Aggiungi un documento "Introduzione a Oracle Cloud Infrastructure" che fornisce dettagli completi per consentire ai clienti di configurare e configurare il software.
  • Nel campo Requisiti di sistema:
    • Elenca tutti i servizi PaaS di Oracle Cloud necessari per installare ed eseguire l'applicazione.
    • Elenca tutti i servizi SaaS di Oracle Cloud con cui è integrata l'applicazione.
    • Elenca tutte le dipendenze di sistema di terze parti.
    • In questa sezione sono incluse le dipendenze specifiche del browser o le piattaforme mobile supportate.
    • Essere specifici su qualsiasi versione o edizione dipendenze, o requisiti di dimensionamento (se necessario).

Linee guida per le immagini

Quando crei un elenco di immagini in Oracle Cloud Infrastructure Marketplace, assicurati che le immagini create per l'elenco siano conformi alle linee guida pertinenti.

Linee guida obbligatorie per le immagini Linux

Nella tabella seguente sono elencate le linee guida obbligatorie per l'immagine e il codice di errore corrispondente. Ogni linea guida deve essere seguita. Prima che un'immagine venga pubblicata su Oracle Cloud Infrastructure Marketplace, ogni immagine viene convalidata in base a ciascuna delle seguenti linee guida obbligatorie.

Codice di errore descrizione;
S01 Le chiavi host SSH devono essere univoche per ogni istanza. Utilizzare la utility oci-image-cleanup fornita dal pacchetto oci-utils su GitHub. Questa operazione rimuoverà tutte le chiavi host SSH in modo che vengano rigenerate al primo boot.
S08 Le immagini devono includere una chiave pubblica SSH fornita da un cliente nell'ambito del processo di avvio dell'istanza. Assicurarsi che l'immagine sia abilitata cloud-init.
S10 Gli eventuali file authorized_keys devono contenere solo chiavi fornite dall'utente all'avvio dell'istanza. Utilizzare la utility oci-image-cleanup fornita dal pacchetto oci-utils su GitHub.
S14 È necessario disabilitare il login utente root. Devono essere soddisfatte almeno 1 delle seguenti 3 condizioni:
  • La shell di login dell'utente root deve essere impostata su /sbin/nologin.
  • La configurazione del servizio SSH /etc/ssh/sshd_config non deve consentire il login root. Configurare manualmente l'impostazione seguente:
    PermitRootLogin no
  • Tutte le voci nel file /root/.ssh/authorized_keys devono contenere
    no-port-forwarding, no-agent-forwarding,
                            no-X11-forwarding.
    L'utente root non deve avere voci utilizzabili nel file authorized_keys. Utilizzare la utility oci-image-cleanup fornita dal pacchetto oci-utils su GitHub.

    Per impostazione predefinita, le istanze di Oracle Cloud Infrastructure avviate dalle immagini abilitate cloud-init aggiungono le opzioni di inoltro e utilizzano l'opzione di comando del file authorized_keys per disabilitare in modo efficace qualsiasi chiave SSH fornita dall'utente per l'utente root. Il codice riportato di seguito è un esempio del file authorized_keys creato da Oracle Cloud Infrastructure utilizzando cloud-init:

    no-port-forwarding,
    no-agent-forwarding,
    no-X11-forwarding,
    command="echo 'Please login as the user \"opc\" rather than the user \"root\".';echo;sleep 10"
S16 Le immagini non devono avere utenti a livello di sistema operativo configurati con una password e NON DEVONO avere una password vuota.
G01 L'immagine deve essere avviata per tutte le forme compatibili. Verifica manuale avviando correttamente le istanze per ogni forma compatibile.
G03 L'immagine non deve avere indirizzi MAC non modificabili. Svuotare il file /etc/udev/rules.d/70-persistent-net.rules.
G05 DHCP deve essere abilitato. Assicurarsi che sia configurato manualmente. Assicurarsi di poter eseguire l'accesso SSH a un'istanza di questa immagine conferma che DHCP è abilitato.
G08 Assicurarsi che l'immagine non utilizzi il servizio metadati dell'istanza v1 (IMDSv1). Se l'immagine utilizza gli endpoint IMDSv1, Oracle consiglia di disabilitare IMDSv1 e di eseguire l'upgrade a IMDSv2. Vedere Upgrading to the Instance Metadata Service v2 nella documentazione di Oracle Cloud Infrastructure.

Linee guida obbligatorie per le immagini Windows

Codice di errore descrizione;
W01 Prima di creare un'immagine Windows personalizzata, è necessario generalizzare l'istanza Windows utilizzando Sysprep. Vedere Creazione di un'immagine generalizzata.
W02 L'account opc non deve essere conservato quando si esegue la generalizzazione di Sysprep. Vedere Creazione di un'immagine generalizzata.
G08 Assicurarsi che l'immagine non utilizzi il servizio metadati dell'istanza v1 (IMDSv1). Se l'immagine utilizza gli endpoint IMDSv1, Oracle consiglia di disabilitare IMDSv1 e di eseguire l'upgrade a IMDSv2. Vedere Upgrading to the Instance Metadata Service v2 nella documentazione di Oracle Cloud Infrastructure.

Linee guida consigliate per le immagini Linux

Le seguenti linee guida sono consigliate per le immagini elencate in Oracle Cloud Infrastructure Marketplace. Ogni linea guida è considerata una buona pratica che dovrebbe essere seguita, se possibile.

Codice di errore descrizione;
S02 Il controllo dell'accesso obbligatorio (MAC) deve essere abilitato. Vedere https://www.linux.com/news/securing-linux-mandatory-access-controls.
S03 Un firewall del sistema operativo deve essere abilitato e configurato in modo da bloccare qualsiasi porta non richiesta in modo specifico come indicato nella documentazione dell'elenco.
S04 È necessario rimuovere tutti i dati sensibili come le password e le chiavi private. Questo tipo di dati è spesso disponibile nei file di log, nel codice sorgente o negli artifact della build. Per rimuovere questi file, utilizzare la utility oci-image-cleanup fornita dal pacchetto oci-utils su GitHub.
S07 I pacchetti cloud-init devono essere disponibili per l'uso durante l'avvio dell'istanza.
S11 Configurare il servizio SSH per impedire il login basato su password. Configurare manualmente le impostazioni riportate di seguito.
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
S15 Il software di immagine deve essere aggiornato come parte del processo di confezionamento finale.
S17 Le password dell'applicazione non devono essere codificate. Qualsiasi password deve essere generata in modo univoco la prima volta che l'istanza viene avviata:
G02 Le immagini devono essere eseguite in modalità pseudo-virtualizzata. Le immagini possono essere eseguite in modalità nativa. Le immagini non devono essere eseguite in modalità emulata.
G04 I gestori di rete devono essere fermati. Vedere https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/3/html/Installation_and_Configuration_Guide/Disabling_Network_Manager.html.
G06 Le immagini devono utilizzare il servizio NTP fornito da Oracle Cloud Infrastructure. Vedere Configurazione del servizio Oracle Cloud Infrastructure NTP per un'istanza.
G07 Per le immagini devono essere impostati valori di timeout iSCSI per la connettività corretta del volume di avvio. Vedere https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Online_Storage_Reconfiguration_Guide/iscsi-modifying-link-loss-behavior-root.html.

Linee guida per gli stack

Oracle consiglia di adottare le best practice generali su Terraform per creare il modello Terraform. Tuttavia, ci sono specifici standard dello stack del Marketplace da seguire per pubblicare uno stack.

Linee guida obbligatorie

Di seguito sono riportate le linee guida obbligatorie per gli stack elencati in Oracle Cloud Infrastructure Marketplace. Ogni linea guida deve essere seguita. Prima di essere pubblicato, ogni artifact dello stack viene convalidato in base a ciascuna di queste linee guida.

  1. L'artifact dello stack deve essere un file zip che include uno o più file di configurazione Terraform e un file di schema.
    • Il file ZIP deve includere almeno un file di configurazione (.tf) nella cartella radice.
    • Il file ZIP deve includere il file di schema (.yaml) nella cartella radice.
    • Il file zip non deve includere un file di stato Terraform nel file zip. I file di stato vengono gestiti da Oracle Resource Manager (ORM). Quando i clienti avviano uno stack, ORM crea e gestisce le risorse e il file di stato diventa disponibile solo per il download.
    • Il file ZIP non deve includere la cartella di configurazione runtime Terraform (.terraform).
  2. La configurazione Terraform deve utilizzare solo immagini dell'istanza approvate o pubblicate (pubbliche o private) del Marketplace. Deve avere un abbonamento al Marketplace a ciascuna di queste immagini. Deve avere riferimenti non modificabili a queste immagini del Marketplace. Per ulteriori dettagli, vedere Configurazione di esempio di Terraform per una sottoscrizione e un utilizzo di immagini del Marketplace.
  3. I file binari non devono essere scaricati da repository esterni. Tutti i file binari e le dipendenze devono essere inseriti nell'immagine del Marketplace pubblicata.
  4. Il provisioninger dell'esecutore remoto Terraform deve essere eseguito solo all'interno del dominio Oracle Cloud Infrastructure. Non deve scaricare file su un server remoto.
  5. Il codice o i file binari di terze parti non devono essere scaricati utilizzando cloud-init.
    1. cloud-init è una utility di configurazione di avvio comunemente utilizzata per le istanze di computazione cloud. Accetta la configurazione tramite i meccanismi dati utente specificati come parte della definizione dei metadati nella risorsa oci_core_instance.
    2. Esistono più formati di dati utente supportati da cloud-init. Vedere https://cloudinit.readthedocs.io/en/latest/topics/format.html.
    3. Indipendentemente dal formato utente-dati, cloud-init NON DEVE essere utilizzato per il download di qualsiasi codice di terze parti o binario. Tutti i file binari richiesti durante il processo di avvio dell'istanza (bootstrap), se non disponibili nell'immagine, devono essere scaricati da un processo (script) fornito come parte della distribuzione dell'immagine, non iniettato tramite cloud-init (ad esempio, utilizzando wget).
    4. È tuttavia possibile che sia stato impostato un modello cloud-init per consentire ai clienti di utilizzarlo in alcuni scenari particolari, ad esempio per importare un file chiave di licenza o un file di configurazione. In tal caso, è necessario fornire una variabile nel codice del modello Terraform per consentire ai clienti di immettere alcuni dati nel blocco di creazione cloud-init, ad esempio utilizzando l'origine dati template_file di Terraform.
  6. Il provider Terraform deve essere Oracle Cloud Infrastructure. Non sono supportati altri provider cloud o fornitori di applicazioni di terze parti.
  7. Se si utilizza un modulo Terraform, è necessario caricarlo dai percorsi relativi locali. Impossibile caricarlo da un repository remoto.
  8. La configurazione Terraform deve utilizzare l'autenticazione del principal dell'istanza.
  9. È necessario specificare le versioni Terraform minime e massime supportate su cui è stato eseguito il test dello stack.

    • Specificare la versione Terraform minima richiesta nel formato: ~> <major_version>.<minor_version>.<patch_version>.

      Dove, patch_version è sempre impostato su 0. Quando viene avviato uno stack, Resource Manager controlla il file <major_version>.<minor_version> definito nel codice e utilizza la versione di patch più recente disponibile. Per questo motivo è necessario utilizzare il segno ~> anziché il segno => durante la specifica della versione Terraform minima richiesta.

      Ad esempio, ~> 0.14.0 indica che le versioni Terraform supportate sono 0.14.0 o successive.

    • Specificare la versione Terraform massima necessaria nel formato: < <major_version>.<minor_version>.

      Ad esempio, < 0.15 indica che le versioni Terraform supportate sono precedenti alla 0.15.

    L'esempio riportato di seguito mostra come specificare le versioni Terraform supportate minime e massime quando lo stack è stato sottoposto a test solo su Terraform 0.14.

    terraform 
    { required_version = "~> 0.14.0, < 0.15" }

Per ulteriori informazioni su Terraform, inclusi il provider Oracle Cloud Infrastructure, l'autenticazione del principal dell'istanza e il provisioninger dell'esecutore remoto, consulta la documentazione di Terraform per Configurazione provider. Per informazioni sulle versioni supportate di Terraform, vedere la Guida introduttiva al provider Terraform nella documentazione di Oracle Cloud Infrastructure.

Linee guida di codifica per le configurazioni Terraform

Le seguenti linee guida sono consigliate per gli stack elencati in Oracle Cloud Infrastructure Marketplace. Ogni linea guida è considerata una buona pratica che dovrebbe essere seguita, se possibile.

  • L'artifact stack deve consentire ai clienti di creare tutte le risorse dell'infrastruttura o di puntare a quelle esistenti (rete, storage e così via).
  • Le convenzioni di denominazione e la formattazione devono essere seguite:
    • Involucro: utilizzare lower_snake_case per tutti i nomi. Ciò vale per nomi di variabili, nomi di risorse, nomi di moduli, nomi di file, nomi visualizzati e così via.
    • Specifica del tipo di risorsa: non includere nel nome la risorsa o il tipo di origine dati. In Terraform, alle risorse e alle origini dati viene sempre fatto riferimento da <type>.<name>. Pertanto, non è necessario includere il tipo nel nome stesso.
    • ID rispetto a OCID: in Oracle Cloud Infrastructure, id in genere si riferisce a un campo che accetta un OCID. Pertanto, le variabili devono utilizzare id quando si fa riferimento ai valori OCID, anziché utilizzare ocid.
    • Nomi variabili: i nomi delle variabili per le risorse Oracle Cloud Infrastructure in genere devono utilizzare lo stesso nome utilizzato per la risorsa Terraform.
    • Nomi visualizzati: i nomi visualizzati per le risorse Oracle Cloud Infrastructure in genere devono utilizzare lo stesso nome utilizzato per la risorsa Terraform.
    • Variabili e output del modulo di denominazione: quando si utilizza un modulo, la denominazione dell'input (variabili) e degli output deve essere esposta al chiamante.
    • terraform fmt deve essere applicato a tutti i Terraform prima di eseguirne il check-in.