Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Facoltativo: utilizzalo AWS CodeCommit come archivio di controllo remoto Puppet r10k
Importante
Il AWS OpsWorks for Puppet Enterprise servizio ha raggiunto la fine del ciclo di vita il 31 marzo 2024 ed è stato disattivato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il AWS Support Team su AWS re:post
È possibile creare un nuovo repository utilizzando AWS CodeCommit e utilizzarlo come repository di controllo remoto r10k. Per completare i passaggi di questa sezione e utilizzare un CodeCommit repository, è necessario un utente che disponga delle autorizzazioni fornite dalla politica gestita. AWSCodeCommitReadOnly
Argomenti
Passaggio 1: utilizzare CodeCommit come repository con un tipo di connessione HTTPS
-
Nella CodeCommit console, crea un nuovo repository.
-
Scegli Salta per saltare la configurazione di un argomento di Amazon SNS.
-
Nella pagina Code (Codice), selezionare Connect to your repository (Collegarsi all'archivio).
-
Nella pagina Connect to your repository (Collegarsi all'archivio), selezionare HTTPS come Connection type (Tipo di connessione) e selezionare il sistema operativo.
Nell'area Steps to clone your repository (Fasi per clonare l'archivio) l'URL
git clone
deve essere simile al seguente:https://git-codecommit.
. Copiare questo URL in un posto favorevole per utilizzarlo nella configurazione del server Puppet.region
.amazonaws.com/v1/repos/control-repo -
Chiudi la pagina Connect to your repository e torna alla configurazione del server OpsWorks for Puppet Enterprise.
-
Incollare l'URL copiato nella Fase 4 nella casella di stringa r10k remote (r10k remoto) nella pagina Configure credentials (Configura credenziali) della procedura guidata del Puppet master. Lasciare vuota la casella r10k private key (chiave privata r10k). Terminare la creazione e l'avvio del Puppet master.
-
Nella console IAM, collega la AWSCodeCommitReadOnlypolicy al ruolo del profilo di istanza del tuo Puppet master. Per ulteriori informazioni su come aggiungere una policy di autorizzazione a un ruolo IAM, consulta Adding IAM identity permissions (console) nella IAM User Guide.
-
Segui i passaggi descritti in Configurazione per gli utenti HTTPS che utilizzano le credenziali Git nella Guida per l'AWS CodeCommit utente per inviare i
control-repo
contenuti esistenti al nuovo CodeCommit repository. -
Ora è possibile continuare seguendo le istruzioni Configurare il Puppet Master utilizzando lo Starter Kit e utilizzare lo Starter Kit per distribuire il codice al Puppet master. Il comando seguente è un esempio.
puppet-code deploy --all --wait --config-file .config/puppet-code.conf
Passaggio 2: (Facoltativo) Utilizzo CodeCommit come repository con un tipo di connessione SSH
È possibile configurare un repository di controllo remoto AWS CodeCommit r10k per utilizzare l'autenticazione tramite key pair SSH. Prima di iniziare questa procedura, devono essere stati completati i seguenti prerequisiti.
-
È necessario aver avviato il server OpsWorks for Puppet Enterprise con un repository di controllo HTTPS come descritto nella sezione precedente,. Passaggio 1: utilizzare CodeCommit come repository con un tipo di connessione HTTPS Questo requisito deve essere completato prima in modo da poter caricare la configurazione richiesta nel Puppet master.
-
Assicurati di avere un utente con la policy AWSCodeCommitReadOnlygestita allegata. Per ulteriori informazioni su come creare un utente, consulta Creating an IAM user in your AWS account nella IAM User Guide.
-
Creare una chiave SSH e associarla all'utente . Segui le istruzioni per creare una coppia di chiavi pubblica/privata
ssh-keygen
nel Passaggio 3: Configurazione delle credenziali su Linux, macOS o Unix nella Guida per l'utente.AWS CodeCommit
-
In una AWS CLI sessione, esegui il comando seguente per caricare il contenuto del file della chiave privata in Parameter Store. AWS Systems Manager Il server OpsWorks for Puppet Enterprise esegue una query su questo parametro per ottenere un file di certificato richiesto. Sostituire
private_key_file
con il percorso del file della chiave privata SSH.aws ssm put-parameter --name puppet_user_pk --type String --value "`cat
private_key_file
`" -
Aggiungi le autorizzazioni di Systems Manager Parameter Store al tuo Puppet master.
Apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/
. -
Nel pannello di navigazione a sinistra, seleziona Ruoli.
-
Scegli 2 ruoliaws-opsworks-cm-ec.
-
Nella scheda Autorizzazioni, scegli Collega policy.
-
Nella barra Cerca immettere
AmazonSSMManagedInstanceCore
. -
Nei risultati della ricerca, scegli ManagedInstanceCoreAmazonSSM.
-
Scegli Collega policy.
-
Creare il manifest del file di configurazione. Se si sta usando il repository
control-repo-example
fornito nello starter kit, creare i file seguenti nei percorsi mostrati nel repository di esempio. In alternativa, crearli in base alla struttura del repository di controllo. Sostituire il valoreIAM_USER_SSH_KEY
con l'ID chiave SSH creato nei prerequisiti per questa procedura.control-repo-example/site/profile/manifests/codecommit.pp
class profile::codecommit { $configfile = @(CONFIGFILE) Host git-codecommit.*.amazonaws.com User
IAM_USER_SSH_KEY
IdentityFile /etc/puppetlabs/puppetserver/ssh/codecommit.rsa StrictHostKeyChecking=no | CONFIGFILE # ReplaceREGION
with the correct region for your server. $command = @(COMMAND) aws ssm get-parameters \ --regionREGION
\ --names puppet_user_pk \ --query "Parameters[0].Value" \ --output text >| /etc/puppetlabs/puppetserver/ssh/codecommit.rsa | COMMAND $dirs = [ '/opt/puppetlabs/server/data/puppetserver/.ssh', '/etc/puppetlabs/puppetserver/ssh', ] file { $dirs: ensure => 'directory', group => 'pe-puppet', owner => 'pe-puppet', mode => '0750', } file { 'ssh-config': path => '/opt/puppetlabs/server/data/puppetserver/.ssh/config', require => File[$dirs], content => $configfile, group => 'pe-puppet', owner => 'pe-puppet', mode => '0600', } exec { 'download-codecommit-certificate': command => $command, require => File[$dirs], creates => '/etc/puppetlabs/puppetserver/ssh/codecommit.rsa', path => '/bin', cwd => '/etc/puppetlabs', } file { 'private-key-permissions': subscribe => Exec['download-codecommit-certificate'], path => '/etc/puppetlabs/puppetserver/ssh/codecommit.rsa', group => 'pe-puppet', owner => 'pe-puppet', mode => '0600', } } -
Invia il tuo repository di controllo a. CodeCommit Eseguire i comandi seguenti per inviare il nuovo file manifest al repository.
git add ./site/profile/manifests/codecommit.pp git commit -m 'Configuring for SSH connection to CodeCommit' git push origin production
-
Distribuire i file manifest. Esegui i seguenti comandi per distribuire la configurazione aggiornata sul tuo server OpsWorks for Puppet Enterprise. Sostituire
STARTER_KIT_DIRECTORY
con il percorso dei file di configurazione Puppet.cd
STARTER_KIT_DIRECTORY
puppet-access login --config-file .config/puppetlabs/client-tools/puppet-access.conf puppet-code deploy --all --wait \ --config-file .config/puppet-code.conf \ --token-file .config/puppetlabs/token -
Aggiorna la classificazione del OpsWorks server Puppet Enterprise. Per impostazione predefinita, l'agente Puppet viene eseguito sui nodi (tra cui il master) ogni 30 minuti. Per evitare l'attesa, è possibile eseguire manualmente l'agente sul Puppet master. L'esecuzione dell'agente preleva il nuovo file manifest.
-
Effettuare l'accesso alla console Puppet Enterprise.
-
Scegliere Classification (Classificazione).
-
Espandere PE Infrastructure (Infrastruttura PE).
-
Scegliere PE Master (Master PE).
-
Nella scheda Configuration (Configurazione) immettere
profile::codecommit
in Add new class (Aggiungi nuova classe).La nuova classe,
profile::codecommit
, potrebbe non essere visualizzata immediatamente dopo l'esecuzione dipuppet-code deploy
. Scegliere Refresh (Aggiorna) in questa pagina se non viene visualizzata. -
Scegliere Add class (Aggiungi classe), quindi scegliere Commit 1 change (Modifica commit 1).
-
Esegui manualmente l'agente Puppet sul server OpsWorks for Puppet Enterprise. Scegliere Nodes (Nodi), scegliere il server nell'elenco, scegliere Run Puppet (Esegui Puppet), quindi scegliere Run (Esegui).
-
-
Nella console Puppet Enterprise modificare l'URL del repository per l'utilizzo di SSH anziché di HTTPS. La configurazione eseguita in questi passaggi viene salvata durante il processo di backup e ripristino di OpsWorks for Puppet Enterprise, quindi non è necessario modificare manualmente la configurazione del repository dopo le attività di manutenzione.
-
Scegliere Classification (Classificazione).
-
Espandere PE Infrastructure (Infrastruttura PE).
-
Scegliere PE Master (Master PE).
-
Nella scheda Configuration (Configurazione) individuare la classe
puppet_enterprise::profile::master
. -
Scegliere Edit (Modifica) accanto al parametro
r10k_remote
. -
Sostituire l'URL HTTPS con l'URL SSH per il repository e scegliere Commit 1 change (Modifica commit 1).
-
Esegui manualmente l'agente Puppet sul server OpsWorks for Puppet Enterprise. Scegliere Nodes (Nodi), scegliere il server nell'elenco, scegliere Run Puppet (Esegui Puppet), quindi scegliere Run (Esegui).
-