2013-03-12 2 views
2

Окружающая среда:Как установить apache2 с помощью поваренной книги повара apache2?

  • CentOS 6
  • Chef 10

Я скачал кулинарной apache2 из community.opscode тогда я побежал # chef-client в узле клиента. Установка и начало обслуживания были успешными.

[2013-03-12T15:30:00+09:00] INFO: Processing package[apache2] action install(apache2::default line 20) 

Когда я иду в поваренных книгах/apache2/рецепты/default.rb, нет никакой линии, которая говорит action:install Я новичок в Ruby, так что я не могу понять, где строки кода, которые ответственный за установку.

Кроме того, если apache2 устанавливается, есть ли какой-либо инсталляционный пакет, включенный внутри рецепта? Скажем, пакет .rpm? Если да, то каков полный путь?

Заранее благодарен!

EDIT:

я уже узнал, что пакет в

package "apache2" do 
    package_name node['apache']['package'] 
end 

имеет action :install по умолчанию. Но опять же, я не то, что он устанавливает. Где сам установочный пакет или поваренная книга такая же, как у установщика?

ответ

7

Здесь есть несколько вещей, о которых можно поговорить. Во-первых, каноническая справочная документация находится на странице Chef Docs для ресурсов пакета.

Поскольку рецепты шеф-повара - это Ruby DSL, давайте рассмотрим, что это значит. Каждый ресурс, определенный в рецепте, имеет тип, который может иметь один или несколько поставщиков. Этот ресурс является декларативным интерфейсом к основополагающему вещью, которая обрабатывает, как управлять этим ресурсом, поставщиком. Шеф выбирает провайдера автоматически на основе платформы узла. В случае пакета у шеф-повара есть поставщики для yum, apt, solaris, macports и многих других. См. Документацию для информации.

Когда вы объявляете ресурс в рецепте, он принимает два аргумента в терминах Ruby, строку и необязательно блок. Строка - это имя ресурса. Каждый из параметров атрибута в блоке может иметь параметры по умолчанию, которые задокументированы на сайте docs для различных основных ресурсов шеф-повара и поставщиков. Имя также используется для одного из атрибутов, называемого «name_attribute». В случае данного примера:

package "apache2" do 
    package_name node['apache']['package'] 
end 

Имя ресурса - «apache2» для всех целей и задач. Однако атрибут name для пакетов равен package_name, который в этом случае называется именем пакета из атрибута node['apache']['package'], который указан в файле attributes/default.rb поваренной книги. Это специфично для платформы, поскольку никакие два дистрибутива/ОС не могут согласовать, что назвать пакет (apache2 на Debian, httpd на RHEL).

Особым атрибутом для ресурсов является действие. Это говорит базовому провайдеру, что должно указывать на ресурс. По умолчанию шеф-повар будет принимать наиболее позитивные меры по использованию ресурсов. Как декларативный интерфейс к основным системным ресурсам, Шеф-повар считает, что это самая разумная неудивительная вещь. В случае пакета Chef по умолчанию будет устанавливать пакет.

Так как обзор в написании такого рода рецепт:

  1. Мы сказали Chef управлять пакет под названием «apache2».
  2. Мы сказали шеф-повару, что имя управляемого пакета фактически является атрибутом `node ['apache'] ['package'].
  3. Без определенного действия шеф по умолчанию будет install.
  4. Шеф-повар будет использовать базовый менеджер пакетов, установленный по умолчанию для платформы узла для установки пакета. В системах Debian/Ubuntu он будет делать apt-get install apache2. В системах RHEL/CentOS и т. Д. Он будет делать yum install httpd.
+0

Отличный ответ! Это на самом деле отличное пошаговое руководство по поваренной книге apache2 и хорошая рекомендация о том, как написать кулинарию с конкретными атрибутами платформы. – TrinitronX

+0

Да, большое вам спасибо! Это помогло и просветило меня много! – Ella

Смежные вопросы