Chef - Blaupausen
In Chef sind Blaupausen die Werkzeuge, um herauszufinden und genau aufzuzeichnen, was auf dem Server vorhanden ist. Blaupausen zeichnen alle erforderlichen Dinge auf, z. B. Direktoren, Pakete, Konfigurationsdateien usw. Blaupausen können Serverinformationen in verschiedenen Formaten aufteilen. Eines davon ist das Rezept des Küchenchefs. Dies hilft bei der Konfiguration eines eindeutigen Servers mit Chef.
Woring-Methode
Python und Git müssen auf dem Knoten installiert sein, auf dem die Blaupause ausgeführt werden soll.
Step 1 - Installieren Sie die Blaupause.
vipin@server:~$ pip install blueprint
Step 2 - Erstellen Sie eine Blaupause.
user@server:~$ sudo blueprint create internal-cookbook
# [blueprint] using cached blueprintignore(5) rules
# [blueprint] searching for Python packages
# [blueprint] searching for PEAR/PECL packages
# [blueprint] searching for Yum packages
# [blueprint] searching for Ruby gems
# [blueprint] searching for npm packages
# [blueprint] searching for software built from source
# [blueprint] searching for configuration files
# [blueprint] /etc/ssl/certs/AC_Ra\xc3\xadz_Certic\xc3\
xa1mara_S.A..pem not UTF-8 - skipping it
# [blueprint] /etc/ssl/certs/NetLock_Arany_=Class_Gold=_F\xc5\
x91tan\xc3\xbas\xc3\xadtv\xc3\xa1ny.pem not UTF-8 - skipping it
# [blueprint] /etc/ssl/certs/EBG_Elektronik_Sertifika_Hizmet_Sa\
xc4\x9flay\xc4\xb1c\xc4\xb1s\xc4\xb1.pem not UTF-8 - skipping it
# [blueprint] /etc/ssl/certs/Certinomis_-_Autorit\xc3\xa9_Racine.
pem not UTF-8 - skipping it
# [blueprint] /etc/ssl/certs/T\xc3\x9cB\xc4\xb0TAK_UEKAE_K\xc3\
xb6k_Sertifika_Hizmet_Sa\xc4\x9flay\xc4\xb1c\xc4\xb1s\xc4\xb1_-_S\
xc3\xbcr\xc3\xbcm_3.pem not UTF-8 - skipping it
# [blueprint] searching for APT packages
# [blueprint] searching for service dependencies
Step 3 - Erstellen Sie ein Kochbuch aus der Blaupause.
user@server:~$ blueprint show -C internal-cookbook my-server/recipes/default.rb
Step 4 - Überprüfen Sie den Inhalt der generierten Datei.
user@server:~$ cat internal-cookbook /recipes/default.rb
#
# Automatically generated by blueprint(7). Edit at your own risk.
#
cookbook_file('/tmp/96468fd1cc36927a027045b223c61065de6bc575.tar')
do
backup false
group 'root'
mode '0644'
owner 'root'
source 'tmp/96468fd1cc36927a027045b223c61065de6bc575.tar'
end
execute('/tmp/96468fd1cc36927a027045b223c61065de6bc575.tar') do
command 'tar xf "/tmp/96468fd1cc36927a027045b223c61065de6bc575.tar"'
cwd '/usr/local'
end
directory('/etc/apt/apt.conf.d') do
...TRUNCATED OUTPUT...
service('ssh') do
action [:enable, :start]
subscribes :restart, resources('cookbook_file[/etc/default/
keyboard]', 'cookbook_file[/etc/default/console-setup]',
'cookbook_file[/etc/default/ntfs-3g]', 'package[openssh-server]',
'execute[96468fd1cc36927a027045b223c61065de6bc575.tar]')
end
Workflow-Skript
Blueprint ist ein Python-Paket, das alle relevanten Konfigurationsdaten des Servers ermittelt und in einem Git-Repo speichert. Jede Blaupause hat einen eigenen Namen.
Man kann den Entwurf bitten, den Inhalt seines Git-Repos in verschiedenen Formanten anzuzeigen.
user@server:~$ ls -l internal-cookbook /
total 8
drwxrwxr-x 3 vagrant vagrant 4096 Jun 28 06:01 files
-rw-rw-r-- 1 vagrant vagrant 0 Jun 28 06:01 metadata.rb
drwxrwxr-x 2 vagrant vagrant 4096 Jun 28 06:01 recipes
Blaupausen Befehle anzeigen
user@server:~$ blueprint show-packages my-server
...TRUNCATED OUTPUT...
apt wireless-regdb 2011.04.28-1ubuntu3
apt zlib1g-dev 1:1.2.3.4.dfsg-3ubuntu4
python2.7 distribute 0.6.45
python2.7 pip 1.3.1
pip blueprint 3.4.2
pip virtualenv 1.9.1
Der vorhergehende Befehl zeigt alle Arten von installierten Paketen. Andere Show-Befehle sind wie folgt:
- show-files
- show-services
- show-sources