Rex é uma ferramenta de automação baseada em SSH que permite executar tarefas de forma remota em servidores. Ela oferece vantagens como não precisar de agentes nas máquinas, fácil integração e extensibilidade. Rex pode ser usado para tarefas de DevOps com Drupal, como sincronização de configurações e execução de comandos Drush para deployments.
6. REX - nome
Etimologia:
Rei - em latim.
(Tyrannosaurus rex - Rei dos lagartos tiranos)
(R)?ex - Remote Execution
7. Vantagens
● usa SSH, não necessita de 1 agente na
máquina
● fácil de integrar, sem conflitos
● fácil de usar e extensível
● fácil de aprender - Perl simplificado
10. Extensível e fácil de usar
CMDB - Yaml
Mysql
Joomla
OTRS
Firewall/Iptables
Jenkins
Cloud + Docker +
VirtualBox
Comandos:
● Grupos + Ambientes
● Templating
● Rsync
● Run
● Cron
● Service
12. Exemplo - Perl Simplificado (2/6)
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/Vol..._root 303G 73G 216G 26% /
tmpfs 3,8G 0 3,8G 0% /dev/shm
/dev/xvda1 485M 75M 385M 17% /boot
# Disk Free - Human Readable
# df -h
13. Exemplo - Perl Simplificado (3/6)
use Rex -feature => ['1.0'];
desc "Get Disk Free";
task "disk_free", sub {
my $output = run "df -h";
say $output;
};
14. Exemplo - Perl Simplificado (4/6)
# Rexfile example
use Rex -feature => ['1.0'];
task "disk_free", sub {
say run "df -h";
};
15. Exemplo - Perl Simplificado (5/6)
Filesystem Size Used Avail Use% Mounted
on
/dev/mapper/Vol..._root 303G 73G 216G 26% /
tmpfs 3,8G 0 3,8G 0% /dev/shm
/dev/xvda1 485M 75M 385M 17% /boot
Bash Linux
# rex disk_free
16. Exemplo - Perl Simplificado (6/6)
Filesystem Size Used Avail Use% Mounted
on
/dev/mapper/Vol..._root 303G 73G 216G 26% /
tmpfs 3,8G 0 3,8G 0% /dev/shm
/dev/xvda1 485M 75M 385M 17% /boot
Bash Linux
# rex -H www.drupal.pt disk_free
17. Vi drupal.pt, então isto já
é Drupal???
Vi drupal.pt, então isto já
é Drupal???
18. ● Providenciar recursos de Virtualização
● Deployment + Continuous delivery
● Testing
● Sincronização de configurações
Exemplos de utilização
22. Vantagens para o Drupal
● Solução sem dependências/impacto para o sistema, além do agente SSH
● Pode executar instruções Drush remotamente (run “drush cc all”;)
● Facilitar o processo de deployment de alterações (Ex: Features+Drush)
● Reduz-se o risco de ocorrência de falhas por inconsistências entre sistemas
(exemplo: configurações PHP)
● Deployment de distribuições custom