Вы находитесь на странице: 1из 2

Тестовое задание: Программирование логики в автоматизации.

(AWS + Ansible)

Имеется:
- VPC c несколькими подсетями (subnet-aaaaaaaa, subnet-bbbbbbbb, subnet-cccccccc),
которые раcположенны в разных зонах доступности (availability zones).
- access key и secret key с админским доступом к VPC.
- yaml файл с описанием типа инстансов:

```# instances.yml
instances:
- name: app
subnets:
- subnet: 'subnet-aaaaaaaa'
seq_num: '01'
- subnet: 'subnet-aaaaaaaa'
seq_num: '02'
- subnet: 'subnet-bbbbbbbb'
seq_num: '03'
- subnet: 'subnet-bbbbbbbb'
seq_num: '04'
- subnet: 'subnet-cccccccc'
seq_num: '05'
...

- name: web
subnets:
- subnet: 'subnet-aaaaaaaa'
seq_num: '01'
assign_public_ip: true
- subnet: 'subnet-bbbbbbbb'
seq_num: '02'
assign_public_ip: true
...
```

Задача:
Средствами Ansible
- создать инстансы (app-01, app-02, .., web-01, web-02, ..) в соответствии с
указанными subnet.
- публиные IP должны быть только у инстансов с параметром `assign_public_ip: true`
- установить nginx на все инстансы.
- динамически сконфигурировать nginx на инстансах типа "web".
nginx должен работать как load balancer, для только "app"-ов своей AZ.
например для web-02:
``` http {
upstream apps {
server app-03;
server app-04;
}

server {
listen 80;

location / {
proxy_pass http://apps;
}
}
}```
Таким образом, при изменении конфигурации в instances.yml и запуске плейбука,
новые инстансы должны быть созданы, и конфиги "web"-ов обновлены.