3
Chef is a DevOps tool used for configuring cloud services or to streamline the
4
task of configuring a company's internal servers. Chef automatically sets up
5
and tweaks the operating systems and programs that run in massive data centers.
7
Chef can run using a client/server model, or on a consolidated configuration
8
named "chef-solo". Chef can be integrated with Cloud-based platforms such as
9
Rackspace and Amazon EC2. Traditionally, Chef is used to manage Linux but later
10
versions support running on Windows as well.
12
The user writes "recipes" that describe how a Chef manages server applications
13
(such as Apache, MySQL, or Hadoop) and how they are to be configured. These
14
recipes describe a series of resources that should be in a particular state -
15
packages that should be installed, services that should be running, or files
16
that should be written. Chef makes sure each resource is properly configured,
17
and automatically discovers data points of the system.[2]
19
Chef can be used to create clones of Quality Assurance environments,
20
pre-production environments, and partner preview environments. Once automated,
21
a blueprint is created for the infrastructure, enabling the user to build, or
22
rebuild, automatically in minutes or hours.
25
# Configurable options
27
The Chef Server charm allows for certain values to be configurable via the
30
Most default values used in the config.yaml file are taken from those used in a
31
standard installation.
36
# Bootstrap the juju environment. This is required before any other
37
# operation can be performed.
40
# Check that the environment has been bootstrapped successfully.
46
dns-name: <bootstrap-instance-ip-address>
47
instance-id: <bootstrap-instance-id>
48
instance-state: running
50
# Now deploy the service
51
juju deploy chef-server
59
dns-name: <bootstrap-instance-ip-address>
60
instance-id: <bootstrap-instance-id>
61
instance-state: running
64
dns-name: <server-ip-address>
65
instance-id: <service-instance-id>
66
instance-state: running
69
charm: local:precise/chef-server-0
76
public-address: <server-ip-address>
78
# And then expose the service so that it is accessible over the internet.
79
juju expose chef-server
81
# And check status again
87
dns-name: <bootstrap-instance-ip-address>
88
instance-id: <bootstrap-instance-id>
89
instance-state: running
92
dns-name: <server-ip-address>
93
instance-id: <service-instance-id>
94
instance-state: running
97
charm: local:precise/chef-server-0
107
public-address: <server-ip-address>