Instant DevOps
advancing technology
growing business challenges
agile development model
source code
+ application data
+ bare metal
——————————————————————
infrastructure as code
We need new tools!
$ curl -L get.rexify.org | perl - --sudo -n Rex
$ cpanm Rex
Hardware File Package
Template FS SCM
Transaction Cron Service
Cache Host User
Reports LVM Virtualization
Inventory kmod Box
Partition Network Cloud
make -> Makefile
rex -> Rexfile
user "ubuntu";
password "ubuntu";
pass_auth;
user "ubuntu";
private_key "~/.ssh/id_rsa";
public_key "~/.ssh/id_rsa.pub";
key_auth;
user "ubuntu";
password "ubuntu";
pass_auth;
sudo -on;
sudo_password "ubuntu";
user "ubuntu";
password "ubuntu";
pass_auth;
sudo -on;
sudo_password "ubuntu";
group servers => "web1", "web2", "web3";
user "ubuntu";
password "ubuntu";
pass_auth;
sudo -on;
sudo_password "ubuntu";
group servers => "web[1..3]";
user "ubuntu";
password "ubuntu";
pass_auth;
sudo -on;
sudo_password "ubuntu";
group servers => "web[1..3]", "lb[1..2]",
"db[01..02]", "mail";
user "ubuntu";
password "ubuntu";
pass_auth;
sudo -on;
sudo_password "ubuntu";
group servers => "web[1..3]", "lb[1..2]",
"db[01..02]", "mail";
task "uptime", group => "servers", sub {
say run "uptime";
};
task "upgrade", group => "servers", sub {
update_package_db;
update_system;
};
task "setup_ntp", group => "servers", sub {
install "ntp";
};
task "setup_ntp", group => "servers", sub {
install "ntp";
service ntp => ensure => "started";
};
task "setup_ntp", group => "servers", sub {
install "ntp";
file "/etc/ntp.conf",
source => "files/etc/ntp.conf";
service ntp => ensure => "started";
};
task "setup_ntp", group => "servers", sub {
install "ntp";
file "/etc/ntp.conf",
source => "files/etc/ntp.conf",
owner => "root",
group => "root",
mode => 644;
service ntp => ensure => "started";
};
task "setup_ntp", group => "servers", sub {
install "ntp";
file "/etc/ntp.conf",
source => "files/etc/ntp.conf",
owner => "root",
group => "root",
mode => 644,
on_change => sub {
service ntp => "restart"
};
service ntp => ensure => "started";
};

Instant DevOps