Как развернуть на единственном определенном использовании сервера Capistrano

Я бы рекомендовал использовать PDO (объекты данных PHP) для запуска параметризованных SQL-запросов.

Это не только защищает от SQL-инъекции, но и ускоряет выполнение запросов.

И используя функции PDO, а не mysql_, mysqli_ и pgsql_, вы делаете свое приложение немного более абстрактным из базы данных, в редких случаях, когда вам нужно переключать поставщиков баз данных .

56
задан Benjamin 2 February 2014 в 14:30
поделиться

3 ответа

Я закончил тем, что отправил вопрос в capistrano пользовательском списке здесь и добрался, следующий ответ от Jamis (отредактировал немного мной здесь для ясности):

<час>

Попытка переменная среды ХОСТОВ:

cap HOSTS=app2.example.com production deploy

Примечание, что выполнение этого будет рассматривать app2, как являющийся в каждой роли, не только, какой бы ни роль (роли) это, оказывается, объявляется в.

, Если то, что Вы хотите, должно сделать, постоянный клиент развертывается, но только действует на app2, и только поскольку app2 объявляется в Вашем файле рецепта, можно использовать переменную HOSTFILTER вместо этого:

cap HOSTFILTER=app2.example.com production deploy 

[...]

Рассматривают этот конкретный пример. Предположим, что Ваш сценарий определяет три сервера, A, B, и C. И это определяет задачу, "нечто", которое (по умолчанию) хочет работать на A и B, но не C. Как это:

role :app, "A", "B"
role :web, "C"

task :foo, :roles => :app do
  run "echo hello"
end

Теперь, если Вы делаете cap foo, это выполнит команду эха и на A и на B.

, Если Вы делаете cap HOSTS=C foo, это выполнит команду эха на C, независимо от: ролевой параметр к задаче.

, Если Вы делаете cap HOSTFILTER=C foo, это не выполнит команду эха вообще, потому что пересечение (B) и (C) является пустым множеством. (Нет никаких хостов в списке хоста нечто того соответствия C.)

, Если Вы делаете cap HOSTFILTER=A foo, это будет работать на команде эха только A, потому что (B) пересеченный с (A) (A).

Наконец, если Вы делаете cap HOSTFILTER=A,B,C foo, это выполнит команду эха на A и B (но не C), потому что (B) пересеченный с (B C) (B).

Для суммирования: ХОСТЫ полностью переопределяют объявление хостов или ролей задачи и вынуждают все работать против указанного хоста (хостов). HOSTFILTER, с другой стороны, просто фильтрует существующие хосты против данного списка, выбирая только те серверы, которые уже находятся в списке сервера задач.

124
ответ дан rusty 26 November 2019 в 17:13
поделиться

Следующее должно работать из поля:

cap HOSTS=app2.example.com ROLE=app deploy

, Если Вы хотите развернуться к> 1 сервер с той же ролью:

cap HOSTS=app2.example.com,app3.example.com,app4.example.com ROLE=app deploy
3
ответ дан wulong 26 November 2019 в 17:13
поделиться

Необходимо быть в состоянии сделать что-то вроде этого в deploy.rb:

task :production do
  if ENV['SERVER'] && ENV['ROLE']
    role ENV['ROLE'], ENV['SERVER']
  else
    # your full config
  end
end
1
ответ дан Dave Pirotte 26 November 2019 в 17:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: