Os droplets do Digital Ocean são configurados por padrão com o root
usuário e as chaves SSH são definidas para esta conta. No entanto, normalmente queremos desabilitar o acesso root remoto para nosso servidor e usar um usuário administrador diferente, então basicamente temos duas opções: (A) executar um script de bootstrap na máquina remota para criar um administrator
usuário ou (B) passar um argumento para o make
comando do servidor para alternar entre os usuários. A última opção nos permitirá usar um processo de instalação mais limpo e simples, conforme descrito abaixo.
Para a primeira instalação (isso será executado pelo root
usuário, instalando o sistema básico e, em seguida, desabilitando o acesso root):
make myserver install
Para as instalações subsequentes (com o administrator
usuário), usaremos:
make myserver
Podemos obter os argumentos da linha de comando dentro do Makefile
com algo como:
myserver:
ifneq (,$(findstring install,$(MAKECMDGOALS)))
ansible-playbook -l myserver playbook-myserver.yml -vvvv -e install=true
else
ansible-playbook -l myserver playbook-myserver.yml -vvvv
endif
E no manual do Ansible, podemos selecionar o usuário com base no parâmetro de instalação:
- hosts: myserver
sudo: true
remote_user: "{{'root' if install is defined else 'administrator'}}"
Isso é tudo 🙂