
Alex
02.10.2016
22:37:59
спасибо посмеялся
надеюсь ты не серьезно.
Ты еще на гитхаб репозиторий запиши пароль от amazon, пускай его боты своруют.
Секреты внутри репозитория не хранятся. Знаешь почему?

Google

Alex
02.10.2016
22:38:45
почитай как хакнули fl.ru. У них слили код
а так как у них прям в коде все записано было то у них был долгий даунтайм пока они везде пароли меняли.
Если бы оно в коде не было жестко прошито, а передавалось как то за пределами репозитория то такой проблемы бы не было. Поэтому писать секреты в репозиторий это дурной тон.
В опенсорсе вообще невозможно.

Dmitriy
02.10.2016
22:40:18
Ребят, можете скинуть аналогичные чаты для PHP разработчиков?
Спасибо!

Alexander
02.10.2016
22:40:29

Alex
02.10.2016
22:40:38
Синглтон тоже в какой то мере антипаттерн, но считаю его юзание здесь оправданным.

Alexander
02.10.2016
22:40:46

Alex
02.10.2016
22:40:55
Знаю
А как ты их еще передавать будешь?

Alexander
02.10.2016
22:41:39

Alex
02.10.2016
22:41:54
у меня конфигурация для ENV хранится в специальном репозитории
будь то chef/ansible

Alexander
02.10.2016
22:42:08

Google

Alex
02.10.2016
22:42:21
Зачем я комичу конфигурацию chef/ansible?

Alexander
02.10.2016
22:42:43
Подожди
Давай просто про ключ к сервису А
Как его хранить и загрузить для класса библиотеки?

Alex
02.10.2016
22:43:21
а где он храниться будет и кем задаваться будет?
Передаешь классу при инициавлизации наприменр
либо создаешь специальный метод который может эти данные менять внутри класса.

Alexander
02.10.2016
22:43:47
Подожди
В Ruby он как попадёт? Через YAML?

Alex
02.10.2016
22:44:31
В процесс? да как угодно

Alexander
02.10.2016
22:44:56
Ну вот я про твой пример с secrets.yml спрашиваю

Alex
02.10.2016
22:45:02
У меня в секретах он хранится

Иван
02.10.2016
22:45:19

Alexander
02.10.2016
22:45:32
Так, значит YAML. В том файле откуда взялось значение?

Alex
02.10.2016
22:45:55
Из ENV
https://github.com/ebertti/awesome-telegram
где то был еще список всех pro.*

Alexander
02.10.2016
22:46:41
Из ENV
Я вот на этом этапе не вижу проблемы вписать руками или через CD

Alex
02.10.2016
22:46:49
в ENV?

Alexander
02.10.2016
22:46:56
В YAML!

Google

Alex
02.10.2016
22:46:56
ты на проде это как пропишешь?
Щито

Alexander
02.10.2016
22:47:09
Вот потому и спрашиваю: зачем ENV?

Alex
02.10.2016
22:47:19
Ну, ты рассматриваешь дефолтную конфигурацию где secrets.yml не комитится в репозиторий

Alexander
02.10.2016
22:47:28

Alex
02.10.2016
22:47:33
значит тебе нужно делать еще голый secrets.yml.default верно?

Alexander
02.10.2016
22:47:37

Alex
02.10.2016
22:47:43
иначе ты не будешь знать какие у тебя секреты хранятся

Alexander
02.10.2016
22:47:47
Тут много вариантов

Alex
02.10.2016
22:48:07
А если так, то зачем мне возиться с двумя файлами когда я могу через ENV все задавать? ENV имхо гибче.
Я могу легко ENV в докере прокинуть, файл сложнее.

Alexander
02.10.2016
22:48:22

Alex
02.10.2016
22:48:39
Чтобы у меня в одном месте приложения было видно все все секреты которые вообще есть.

Alexander
02.10.2016
22:48:56
Как они туда попадают из ENV?
ENV кого вообще?

Alex
02.10.2016
22:49:14
unix environment

Alexander
02.10.2016
22:49:37

Alex
02.10.2016
22:49:46
ну да

Google

Alex
02.10.2016
22:49:57
глобального unix timestamp Тоже нету
а понятие есть

Alexander
02.10.2016
22:50:22
Так вот чей ENV?
Докера? Приложения? Чего-то ещё?
И откуда он берётся? Из ~/.profile?

Alex
02.10.2016
22:52:15
я обычно юзаю direnv/docker

Alexander
02.10.2016
22:54:01

Alex
02.10.2016
22:54:19
Я читаю secrets.yml дальше могу составить свой .envrc который не комитится в репозиторий.
direnv простой, попробуй может понравится

Admin
ERROR: S client not available

Alexander
02.10.2016
22:54:53
Ты либо скакнул вперёд, либо я потерял нить

Alex
02.10.2016
22:55:05
он мне еще позволяет не писать bundle exec

Alexander
02.10.2016
22:55:37
Попробую с другой стороны: сервис A дал тебе ключ, ты его копируешь и пишешь куда?
Жесть

Alex
02.10.2016
22:55:58
Ээ
у меня в локалке внешние апишки не юзаются.

Alexander
02.10.2016
22:56:25

Alex
02.10.2016
22:56:36
Сервис дал мне ключ и дальше я его уже прописываю на проде в докер контейнер

Alexander
02.10.2016
22:56:40

Google

Alex
02.10.2016
22:56:53

Alexander
02.10.2016
22:56:59

Alex
02.10.2016
22:57:33

Alexander
02.10.2016
22:57:37

Alex
02.10.2016
22:57:42
А так в каждой системе оркестрации по своему
В docker-compose например легко env задать

Alexander
02.10.2016
22:57:58

Alex
02.10.2016
22:58:00
docker-compose конфиг со всеми файлами лежит в отдельном репозиториию.

Alexander
02.10.2016
22:58:06
А
Так, всё же у тебя ключ от сервиса А в репозитории, хоть и отдельном
Ты осознаёшь сколько путей проходит ключ до кода? Около 5

Alex
02.10.2016
22:59:10
Как задаёшь?
docker_container "apache_#{unix_name}_php_5_3" do
repo "mycompany/apache_php_5_3"
links ["memcached:memcached"]
port ["127.0.0.1:#{http_port}:80"]
env ["CS_USERNAME=#{unix_name}", "CS_USERNAME_UID=#{unix_uid}"]
volumes [
"/home/#{unix_name}/web:/home/#{unix_name}/web",
"/var/run/mysqld:/var/run/mysqld"
]
kill_after 3
action [:create, :start]
end
Вот так например
На локалке один путь на проде другой
через ENV очень удобно секреты и конфигурацию передавать

Alexander
02.10.2016
23:00:29

Alex
02.10.2016
23:00:37
Что?
твое приложение вообще заботить не должно как ему ENV подсунули
тем ENV'ы и хороши

Alexander
02.10.2016
23:01:30

Alex
02.10.2016
23:01:44
Ну да, вот только ENV'ы проще пробрасывать