SaltStack - Salt para infraestrutura em nuvem
Salt fornece um módulo separado, Salt Cloud para fornecer máquinas virtuais de vários provedores de nuvem, como Amazon AWS, Google Compute, etc. Salt Cloud é uma interface genérica para configurar e gerenciar VMs de vários provedores de nuvem.
Cloud Config- O arquivo de configuração principal do Salt Cloud é / etc / salt / cloud e se aplica a todas as VMs. O arquivo de configuração principal é chamadoCloud Config.
Cloud Providers - Para atingir provedores de nuvem específicos, podemos usar um arquivo de configuração específico e eles estão localizados em /etc/salt/cloud.providers.d/*.conf, são chamados de Cloud Providers.
Cloud Profiles - Para direcionar uma VM específica, também podemos usar um arquivo de configuração especial, que se aplica a essa VM específica e estão localizados em /etc/salt/cloud.profiles.d/*.conf, são chamados de Cloud Profiles.
Para uma máquina virtual, as configurações no Cloud Config é aplicado primeiro e depois no Cloud Providers e finalmente a substituição é feita pelo Cloud Profiles.
Instalação de Salt Cloud
Por padrão, o Salt Cloud é integrado ao Salt e está prontamente disponível. Se não estiver disponível, podemos instalá-lo usando o comando abaixo.
pip install salt-cloud
Como o Salt Cloud é um módulo separado e é executado em seu próprio processo, ele também pode ser instalado no sistema Salt Minion em vez do Salt Master.
Provisionando uma máquina virtual
Para provisionar uma máquina virtual, precisamos definir um provedor de nuvem e um perfil de nuvem. Depois que ambos forem criados, podemos provisionar uma nova máquina virtual para usá-los.
Provedor de nuvem
As informações do host da nuvem são configuradas no arquivo de configuração do provedor de nuvem. Normalmente, as informações básicas que precisam ser configuradas são driver de nuvem, nome de usuário, senha, chave privada, etc. Vamos criar um novo provedor de nuvem chamadomy-amazon-cloud.
Crie um arquivo, my-amazon-cloud.conf em /etc/salt/cloud.providers.d/
Adicione um novo provedor usando o ec2 motorista.
my-amazon-cloud:
driver: ec2
id: '<AWS_ID>'
key: '<AWS_KEY>'
private_key: /path/to/privatekey.pem
keyname: <name of the key>
securitygroup: default
minion:
master: <master server>
Salt fornece drivers para vários hosts de nuvem prontos para uso, como GoGrid, HP Cloud, Google Compute Engine (GCE), Amazon AWS, Joyent, Linode, OpenNebula, ProfitBricks, Proxmox, Saltify, VexxHost, VMWare, etc.
Uma vez que os provedores de nuvem são configurados, podemos consultar a localização disponível do provedor, imagens de máquina disponíveis e seus vários tamanhos.
salt-cloud --list-location my-amazon-cloud
salt-cloud --list-images my-amazon-cloud
salt-cloud --list-sizes my-amazon-cloud
Perfil de Nuvem
Um perfil de nuvem especifica a imagem e o tamanho da máquina virtual. Ele pode ser configurado em - /etc/salt/cloud.profiles.d/. Vamos criar um perfil simples,simple.conf.
aws_micro:
provider: my-amazon-cloud
image: <image_id>
size: <machine_id e.g. t1.micro>
Máquina virtual
Depois que o provedor e os perfis estão configurados, podemos fornecer facilmente uma máquina virtual usando a nuvem-sal, conforme mostrado abaixo.
salt-cloud -p aws_micro master minion1 minion2
Onde, p - O nome do perfil master, minion1 e minion2 são as novas máquinas virtuais.
Os detalhes da máquina virtual recém-criada podem ser obtidos usando o seguinte comando.
salt-cloud --query
As máquinas virtuais podem ser destruídas usando o seguinte comando -
slat-cloud -d master minion1
Mapa de Nuvem
Um mapa de nuvem é um formato especial para criar várias máquinas virtuais ao mesmo tempo. O formato do arquivo de mapa é especificar o perfil e, em seguida, adicionar uma lista das máquinas virtuais sob ele.
Um arquivo de mapa de amostra é o seguinte -
micro:
- web1
- web2
large:
- db1
- db2
O arquivo de mapa pode ser passado como um argumento para o comando salt-cloud para criar a máquina virtual da seguinte maneira -
salt-cloud -m /path/to/mapfile