Facoltativo: utilizzalo AWS CodeCommit come archivio di controllo remoto Puppet r10k - AWS OpsWorks

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 o tramite Premium AWS Support.

È 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

Passaggio 1: utilizzare CodeCommit come repository con un tipo di connessione HTTPS

  1. Nella CodeCommit console, crea un nuovo repository.

    Creazione di un nuovo repository in. CodeCommit
  2. Scegli Salta per saltare la configurazione di un argomento di Amazon SNS.

  3. Nella pagina Code (Codice), selezionare Connect to your repository (Collegarsi all'archivio).

  4. Nella pagina Connect to your repository (Collegarsi all'archivio), selezionare HTTPS come Connection type (Tipo di connessione) e selezionare il sistema operativo.

    Creazione di un nuovo repository in. CodeCommit

    Nell'area Steps to clone your repository (Fasi per clonare l'archivio) l'URL git clone deve essere simile al seguente: https://git-codecommit.region.amazonaws.com/v1/repos/control-repo. Copiare questo URL in un posto favorevole per utilizzarlo nella configurazione del server Puppet.

  5. Chiudi la pagina Connect to your repository e torna alla configurazione del server OpsWorks for Puppet Enterprise.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  1. 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`"
  2. Aggiungi le autorizzazioni di Systems Manager Parameter Store al tuo Puppet master.

    1. Apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

    2. Nel pannello di navigazione a sinistra, seleziona Ruoli.

    3. Scegli 2 ruoliaws-opsworks-cm-ec.

    4. Nella scheda Autorizzazioni, scegli Collega policy.

    5. Nella barra Cerca immettere AmazonSSMManagedInstanceCore.

    6. Nei risultati della ricerca, scegli ManagedInstanceCoreAmazonSSM.

    7. Scegli Collega policy.

  3. 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 valore IAM_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 # Replace REGION with the correct region for your server. $command = @(COMMAND) aws ssm get-parameters \ --region REGION \ --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', } }
  4. 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
  5. 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
  6. 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.

    1. Effettuare l'accesso alla console Puppet Enterprise.

    2. Scegliere Classification (Classificazione).

    3. Espandere PE Infrastructure (Infrastruttura PE).

    4. Scegliere PE Master (Master PE).

    5. 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 di puppet-code deploy. Scegliere Refresh (Aggiorna) in questa pagina se non viene visualizzata.

    6. Scegliere Add class (Aggiungi classe), quindi scegliere Commit 1 change (Modifica commit 1).

    7. 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).

  7. 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.

    1. Scegliere Classification (Classificazione).

    2. Espandere PE Infrastructure (Infrastruttura PE).

    3. Scegliere PE Master (Master PE).

    4. Nella scheda Configuration (Configurazione) individuare la classe puppet_enterprise::profile::master.

    5. Scegliere Edit (Modifica) accanto al parametro r10k_remote.

    6. Sostituire l'URL HTTPS con l'URL SSH per il repository e scegliere Commit 1 change (Modifica commit 1).

    7. 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).