Como configurar uma gota digital do oceano com o Ansible

Há algum tempo, finalmente comecei minha própria gota via Digital Ocean . Para automatizar essa configuração, usei um manual do Ansible com uma configuração básica do Nginx. Fazendo dessa forma, não apenas fornece uma configuração mais fácil, mas também um provisionamento fácil no futuro.

Como sou novo no cenário de configuração de servidores, tive alguns problemas, então aqui está uma configuração passo a passo sobre como começar.

Suposições
Você está executando o Mac OS X e Python instalado. Essas instruções são específicas para o Digital Ocean, mas devem funcionar com qualquer servidor remoto oferecido por qualquer fornecedor.

ETAPA 1: Instalando o Xcode

Para executar todos os comandos futuros, você precisará do Xcode

ETAPA 2: Instalando o Ansible

sudo easy_install pip
sudo pip install ansible
--quiet

Em seguida, se desejar atualizar o Ansible mais tarde, basta fazer:

sudo pip install ansible --upgrade

O Ansible também usa os seguintes módulos Python que precisam ser instalados:

sudo pip install paramiko PyYAML jinja2 httplib2

O Ansible também pode ser instalado via Homebrew se você o tiver instalado:

brew update
brew install ansible

ETAPA 3: Configurando o Ansible para se comunicar com os servidores

Vamos supor que você tenha servidores com ip 1.2.3.4. Vamos adicionar nossa chave SSH ao servidor.

3.1 Chaves SSH

se você não tem uma chave SSH, pode gerar uma facilmente:

ssh-keygen -t rsa -C "johndoe@example.com"

se estiver executando o Linux, você pode usar ssh-copy-id para copiar a chave dos servidores remotos:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@1.2.3.4

se você estiver executando no OS X, você não terá ssh-copy-id, aqui está uma alternativa:

cat ~/.ssh/id_rsa.pub | ssh root@1.2.3.4 "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"

se você receber um erro sobre o diretório .ssh existente, modifique o anterior para este:

cat ~/.ssh/id_rsa.pub | ssh root@1.2.3.4 "cat >> ~/.ssh/authorized_keys"

3.2 Arquivo de Hosts Ansible

Você pode definir um arquivo hosts geral, mas prefiro usar um arquivo hosts no meu manual do Ansible.

[servers]
1.2.3.4

Ao usar isso, você provavelmente encontrará alguns problemas sobre falha de autenticação ou permissão. é porque você não especificou que queremos nos conectar com o usuário root. Geralmente, é considerado uma má ideia conectar-se ao SSH com o usuário root, mas é assim que os servidores Digital Ocean são configurados imediatamente.

Você pode modificar seu arquivo hosts:

[servers]
1.2.3.4 ansible_connection=ssh ansible_ssh_user=root

3.3 Testando seu arquivo hosts

ansible all -m ping -i <location of your hosts file>

Isso deve resultar no seguinte:

1.2.3.4 | success >> {
"changed": false,
"ping": "pong"
}

Mais informações podem ser encontradas em: http://docs.ansible.com/ ou você pode verificar meu outro protocolo em Como criar uma pilha LAMP com Ansible

Todas as minhas dicas foram movidas para o meu blog www.pix-art.be, então venha conferir!