Examples
See the examples
directory in the repo.
Task Examples
File Operations
{
name = "Create configuration";
template = {
src = "nginx.conf.j2";
dest = "/etc/nginx/nginx.conf";
backup = true;
};
notify = "restart nginx";
}
Service Management
{
name = "Start services";
service = {
name = "{{ item }}";
state = "started";
enabled = true;
};
loop = ["nginx" "postgresql"];
}
Conditional Tasks
{
name = "Install SSL certificate";
copy = {
src = "ssl/cert.pem";
dest = "/etc/ssl/certs/";
};
when = "ssl_enabled | default(false)";
}
Block Tasks
{
block = [
{
name = "Create user";
user = {
name = "deploy";
state = "present";
};
}
{
name = "Set up SSH key";
authorized_key = {
user = "deploy";
key = "{{ ssh_public_key }}";
};
}
];
rescue = [
{
name = "Log error";
debug.msg = "Failed to create user";
}
];
always = [
{
name = "Cleanup";
file = {
path = "/tmp/setup";
state = "absent";
};
}
];
}