Existen varias opciones para configurar plantillas de nube de forma que admitan la administración de configuración basada en Puppet en recursos informáticos de AWS.
Administración de Puppet en AWS con nombre de usuario y contraseña
| Ejemplo de... | YAML de blueprint de ejemplo |
|---|---|
| Autenticación de la configuración de nube en cualquier imagen de máquina de Amazon compatible. | inputs:
username:
type: string
title: Username
default: puppet
password:
type: string
title: Password
encrypted: true
default: VMware@123
resources:
Webserver:
type: Cloud.AWS.EC2.Instance
properties:
flavor: small
image: centos
cloudConfig: |
#cloud-config
ssh_pwauth: yes
chpasswd:
list: |
${input.username}:${input.password}
expire: false
users:
- default
- name: ${input.username}
lock_passwd: false
sudo: ['ALL=(ALL) NOPASSWD:ALL']
groups: [wheel, sudo, admin]
shell: '/bin/bash'
ssh-authorized-keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDytVL+Q6/+vGbmkXoRpX [email protected]
runcmd:
- echo "Defaults:${input.username} !requiretty" >> /etc/sudoers.d/${input.username}
Puppet_Agent:
type: Cloud.Puppet
properties:
provider: PEOnAWS
environment: production
role: 'role::linux_webserver'
host: '${Webserver.*}'
osType: linux
username: '${input.username}'
password: '${input.password}'
useSudo: true |
| Autenticación de la configuración de nube en una imagen de máquina de Amazon personalizada con un usuario existente. | inputs:
username:
type: string
title: Username
default: puppet
password:
type: string
title: Password
encrypted: true
default: VMware@123
resources:
Webserver:
type: Cloud.AWS.EC2.Instance
properties:
flavor: small
image: centos
cloudConfig: |
#cloud-config
runcmd:
- sudo sed -e 's/.*PasswordAuthentication no.*/PasswordAuthentication yes/' -i /etc/ssh/sshd_config
- sudo service sshd restart
Puppet_Agent:
type: Cloud.Puppet
properties:
provider: PEOnAWS
environment: production
role: 'role::linux_webserver'
host: '${Webserver.*}'
osType: linux
username: '${input.username}'
password: '${input.password}'
useSudo: true |
Administración de Puppet en AWS con PublicPrivateKey generado.
| Ejemplo de... | YAML de blueprint de ejemplo |
|---|---|
| Autenticación remoteAccess.authentication en AWS con acceso de generatedPublicPrivateKey. | inputs: {}
resources:
Machine:
type: Cloud.AWS.EC2.Instance
properties:
flavor: small
imageRef: ami-a4dc46db
remoteAccess:
authentication: generatedPublicPrivateKey
Puppet_Agent:
type: Cloud.Puppet
properties:
provider: puppet-BlueprintProvisioningITSuite
environment: production
role: 'role::linux_webserver'
host: '${Machine.*}’
osType: linux
username: ubuntu
useSudo: true
agentConfiguration:
runInterval: 15m
certName: ‘${Machine.address}'
useSudo: true |