Как использовать multi-pass loop в ansible без танцев с бубном

Posted in Новости on 17 августа, 2017 by admin

Итак, понадобилось привязать переменную ( variable ) к отдельному хосту ( хостов около 30 ) при раскидывании конфигов по хостам ( на каждый хост свой уникальный ключ ).
Какие пути ?
1. Дублировать одинаковые таски с when. В итоге получится каша и каждый новый сервер нужно будет прописывать в этом таске.
2. Разделить все серверы по группам ( один сервер — одна группа ), для каждой группы завести свой конфиг в group_vars и через child groups рулить всем этим делом. Опять же получится громоздкая конструкция с кучей файлов и зависимостями.
3. Использовать dict в variables. Этим и займемся.

— Заводим в group_vars/all.yml наш dict ( server(1|2|3) должны строго соответствовать ansible_hostname из инвентори файла ) :

servers:
server1:
secret_key: "value1"
server2:
secret_key: "value2"
server3:
secret_key: "value3"

— Создаем темплейт с указанием ключа :

ossec-agent:
build: .
container_name: ossec-agent
hostname: ossec-agent
restart: always
privileged: true
net: host
environment:
OSSEC_SERVER: "x.x.x.x"
OSSEC_AGENT_KEY: "{{ item.value.secret_key }}"
ports:
- "514:514"
- "1514:1514"
# command: /usr/bin/supervisord -c /etc/supervisord.conf
command: /start.sh

— В тасках создаем :

- name: "put docker-compose"
template:
src: docker-compose.j2
dest: /my/path/ossec-agent/docker-compose.yml
with_dict: "{{ servers }}"
when: ansible_hostname == item.key

И вуаля, у нас работает наш loop и раскидывает ключи согласно inventory.

Tags: , ,

cisco port forwarding

Posted in Новости on 29 мая, 2017 by admin


conf t
ip nat inside source static tcp local_ip local_poty external_ip external_port extendable
exit
write

Tags:

Добавляем CORS для работы с нашим API в kong

Posted in Новости on 6 апреля, 2017 by admin

CORS плагин kong реализует механизм доступа сторонних сайтов к ресурсам kong

1. Активация CORS для API :

curl -X POST http://localhost:8001/apis/myapi/plugins \
--data "name=cors" \
--data "config.origin=tresnet.ru" \
--data "config.methods=GET, POST" \
--data "config.headers=Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Auth-Token" \
--data "config.exposed_headers=X-Auth-Token" \
--data "config.credentials=true" \
--data "config.max_age=3600"

где :
config.origin — домен доступа ( В последних версиях опция была изменена на config.origins для задания списка доменов через запятую ( comma separated ) ( Access-Control-Allow-Origin )
config.methods — список методов доступа ( Access-Control-Allow-Methods )
config.headers — список заголовков запроса ( Access-Control-Allow-Headers )
config.exposed_headers — список ожидаемых заголовков запроса ( Access-Control-Expose-Headers )
config.credentials — заголовок Access-Control-Allow-Credentials ( должен быть выставлен в true )
config.max_age — TTL кеширования запроса в секундах

Tags: , ,

Добавляем ACL для нашего API в kong

Posted in Новости on 6 апреля, 2017 by admin

ACL — это плагин разграничения доступа пользователей к API. Ему необходим для работы один из плагинов авторизации ( BASIC или KEY например ).

1. Создаем ACL для нашего API к которому будут иметь доступ две группы

curl -X POST http://localhost:8001/apis/myapi/plugins --data "name=acl" --data "config.whitelist=group1, group2"

2. Добавляем пользователя ( consumer ) в группу

curl -X POST http://localhost:8001/consumers/user1/acls --data "group=group1"

3. Используем авторизацию как обычно

Tags: , , ,

Добавляем key auth для нашего API в kong

Posted in Новости on 16 марта, 2017 by admin

Тут мы создали свой API. Обращения к нему мы можем закрыть авторизацией BASIC , KEY , OAUTH , HMAC. В этой статье рассматриваем KEY AUTH.

1. Добавляем к созданному API плагин KEY AUTH

curl -X POST http://localhost:8001/apis/myapi/plugins --data "name=key-auth" --data "config.hide_credentials=true"

2. Проверяем, что плагин есть в списке плагинов к нашему API:

curl http://localhost:8001/apis/myapi/plugins

3. Создаем пользователя kong ( Consumer ) :

curl -d "username=user1" http://localhost:8001/consumers/

4. Создаем для пользователя kong ключ ( в ответе на команду будет key: ) :

curl -X POST http://localhost:8001/consumers/user1/key-auth -d ''

5. Передаем дополнительный хидер в запросе API :

curl -i --url http://localhost:8000/ --header 'Host: tresnet.ru' --header "apikey: ad56e164e959478bbbfc8f3a4e8c0e23"

Tags: , , ,