Read this in other languages: English, 日本語, Portugues do Brasil.
Você já terminou o laboratório. Mas preparamos alguns laboratórios de bônus um pouco mais avançados para você seguir, se quiser. Portanto, se você terminou os laboratórios e ainda tem algum tempo, aqui estão mais alguns laboratórios para você:
Crie um novo usuário “testuser” em node1
e node3
usando um comando ad hoc, verifique se ele não foi criado no node2
!
Encontre os parâmetros para o módulo apropriado usando ansible-doc user
(saia com q
)
Use um comando Ansible ad hoc para criar o usuário com o comentário “Test User”
Use o módulo “command” com a chamada adequada para encontrar o ID do usuário
Exclua o usuário e verifique se ele foi excluído
Dica
Lembre-se da escalação de privilégios…
ATENÇÃO
Solução abaixo!
Seus comandos podem ser parecidos com estes:
[student<X>@ansible ansible-files]$ ansible-doc -l | grep -i user
[student<X>@ansible ansible-files]$ ansible-doc user
[student<X>@ansible ansible-files]$ ansible node1,node3 -m user -a "name=testuser comment='Test User'" -b
[student<X>@ansible ansible-files]$ ansible node1,node3 -m command -a " id testuser" -b
[student<X>@ansible ansible-files]$ ansible node2 -m command -a " id testuser" -b
[student<X>@ansible ansible-files]$ ansible node1,node3 -m user -a "name=testuser state=absent remove=yes" -b
[student<X>@ansible ansible-files]$ ansible web -m command -a " id testuser" -b
Você aprendeu o básico sobre templates, variáveis e handlers. Vamos combinar tudo isso.
Em vez de editar e copiar httpd.conf
, por que você não define uma variável para a porta de escuta e a usa em um template? Aqui está o seu trabalho:
Defina uma variável listen_port
para o grupo web
com o valor 8080
e outra para node2
com o valor 80
usando os arquivos adequados.
Copie o arquivo httpd.conf
no template httpd.conf.j2
que usa a variável listen_port
em vez do número da porta codificada.
Escreva um Playbook que implante o template e reinicie o Apache nas alterações usando um handler.
Execute o Playbook e teste o resultado usando curl
.
Dica
Lembra dos diretórios
group_vars
ehost_vars
? Caso contrário, consulte o capítulo “Variáveis”.
ATENÇÃO
Solução abaixo!
Adicione esta linha a group_vars/web
:
listen_port: 8080
Adicione esta linha a host_vars/node2
:
listen_port: 80
Copie httpd.conf
para httpd.conf.j2
Edite a diretiva “Listen” em httpd.conf.j2
para deixa-la assim:
[...]
Listen {{ listen_port }}
[]...]
Crie o playbook chamado apache_config_tpl.yml
:
---
- name: Apache httpd.conf
hosts: web
become: yes
tasks:
- name: Criar arquivo de configuracao do apache a partir do template
template:
src: httpd.conf.j2
dest: /etc/httpd/conf/httpd.conf
notify:
- restart apache
handlers:
- name: Reiniciar apache
service:
name: httpd
state: restarted
Primeiro, execute o próprio Playbook e em seguida, execute curl no node1
com a porta 8080
e node2
na porta 80
.
[student1@ansible ansible-files]$ ansible-playbook apache_config_tpl.yml
[...]
[student1@ansible ansible-files]$ curl http://18.195.235.231:8080
<body>
<h1>Esse eh um servidor web de desenvolvimento, divirta-se!</h1>
</body>
[student1@ansible ansible-files]$ curl http://35.156.28.209:80
<body>
<h1>Esse eh um servidor web de producao, tenha cuidado!</h1>
</body>
Clique aqui para retornar ao Workshop Ansible for Red Hat Enterprise Linux