Então, estou procurando automatizar uma configuração de instâncias de serviço com a AWS.
O AWS permite que você execute scripts de shell na criação de instâncias.
No entanto! Eu me deparei com um pequeno problema. Eu quero, no ssh inicial no servidor, o uso do comando docker. Eu não sou realmente devops, então peço desculpas se isso é Linux 101 coisas ( ou uma pergunta duplicada ).
Veja o que tentei até agora:
Portanto, tenho um script inicial para configurar firewalls e outros bits que precisamos:
#!/bin/sh
$ sudo ufw allow OpenSSH ApacheSecure
$ echo "y" | sudo ufw enable
Tudo isso funciona bem. Meu script então vai instalar docker-ce
:
$ sudo apt update
$ sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
$ sudo apt update
$ apt-cache policy docker-ce
$ sudo apt install -y docker-ce
Se pararmos aqui, ssh-ing no servidor, e o comando docker
do usuário nos fornecerá o usual Command 'docker' not found
. Ok, preciso adicionar o docker ao grupo do usuário atual:
$ sudo usermod -aG docker $USER
$ newgrp docker
Ao executar esses dois comandos manualmente após o login no servidor - tudo é bom. No entanto, na minha infinita preguiça - não quero fazer isso toda vez que configuramos uma instância do servidor.
Como eu adicionaria o comando docker ao $ USER pronto para inicialização? Eu tentei todos os tipos, mas sem sucesso. Preciso de $ sudo -i
e executá-los com privilégios de root?
Eu tentei o acima com $ USER e com o username
especificado na criação da instância. Não funciona.
Qualquer dica pró-devops seria muito apreciada!