Executando comandos de shell com command e shell
Execute comandos arbitrários em nós remotos.
Executando comandos de shell com command e shell é uma aula grátis de Ansible Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ansible Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ansible Academy inclui 4 aulas no total.
Execute Comandos Reais Remotamente
Às vezes, basta executar um comando bruto nos seus servidores. O Ansible oferece dois módulos para isso: command e shell. 🖥️
O Módulo command
O módulo command executa um programa diretamente na máquina remota. Ele é o padrão seguro para comandos simples e únicos.
ansible all -m command -a "uptime"command Ignora o Interpretador de Comandos
Como command é executado sem um interpretador de comandos, ele ignora canais, redirecionamentos e variáveis como $HOME. Isso o torna previsível e seguro.
ansible all -m command -a "ls /etc"O Módulo shell
O módulo shell executa seu comando por meio de um interpretador de comandos real na máquina, portanto canais, redirecionamentos e variáveis funcionam.
ansible all -m shell -a "cat /etc/*release"Canais Exigem shell
Quando seu comando usa um canal ou redirecionamento, use shell. O módulo command trataria | apenas como um argumento comum.
ansible web -m shell -a "ps aux | grep nginx"Variáveis de Ambiente no shell
Somente o módulo shell expande variáveis. Use-o quando seu comando depender de algo como $HOME ou $PATH.
ansible all -m shell -a "echo $HOME"Prefira command Quando Possível
Use command por padrão e shell somente quando realmente precisar dos recursos do interpretador de comandos. Quanto menos interpretador, menos surpresas.
Execute em um Diretório com chdir
Ambos os módulos aceitam chdir para entrar em um diretório antes da execução, o que é mais organizado do que usar cd dentro do comando.
ansible app -m command -a "chdir=/srv git pull"Evite Reexecuções com creates
A opção creates ignora o comando se determinado arquivo já existir, uma maneira simples de evitar repetir o trabalho.
ansible app -m command -a "touch /tmp/done creates=/tmp/done"Eles Não São Idempotentes
Ambos os módulos informam changed em toda execução, pois o Ansible não pode saber o que seu comando bruto fez. Prefira módulos específicos quando houver um.
Último Recurso, Não Primeira Opção
Trate shell e command como recursos de escape. Se um módulo específico, como service ou package, for adequado, use-o para obter resultados mais seguros.
Verificação Rápida
Você precisa executar um comando que usa um canal. Qual módulo deve escolher?
Recapitulação
Use command para comandos simples e shell quando precisar de canais ou variáveis. Lembre-se: ambos sempre informam changed. 🖥️
Perguntas Frequentes
A aula “Executando comandos de shell com command e shell” é grátis?
Sim — o texto completo de “Executando comandos de shell com command e shell” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ansible Academy, atualize para CoddyKit PRO. O curso de Ansible Academy inclui 4 aulas no total.
O que vou aprender em “Executando comandos de shell com command e shell”?
Execute comandos arbitrários em nós remotos. Você pratica Ansible Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Ansible Academy?
Nenhuma experiência prévia é necessária. Ansible Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Executando comandos de shell com command e shell”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Ansible Academy?
Sim. Cada aula de Ansible Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Anatomia do comando ansible
- Padrões: direcionando todos, web e host1
- Executando comandos de shell com command e shell
- Escalonamento de privilégios com become