Fix documented ruby code blocks formatting

This commit is contained in:
Thibault Jouan
2015-04-01 15:10:07 +00:00
parent bf760a2c62
commit cf825de367

214
README.md
View File

@@ -162,34 +162,36 @@ Templates
In `templates/freebsd/jail.conf.erb`: In `templates/freebsd/jail.conf.erb`:
exec.start = "/bin/sh /etc/rc"; ```ruby
exec.stop = "/bin/sh /etc/rc.shutdown"; exec.start = "/bin/sh /etc/rc";
exec.clean; exec.stop = "/bin/sh /etc/rc.shutdown";
mount.devfs; exec.clean;
allow.chflags; mount.devfs;
allow.chflags;
path = "/var/jails/$name"; path = "/var/jails/$name";
<% @jails.each do |jail| -%> <% @jails.each do |jail| -%>
<%= jail[:name] %> { <%= jail[:name] %> {
interface "<%= @if %>"; interface "<%= @if %>";
ip4.addr = <%= jail[:addr4] %>; ip4.addr = <%= jail[:addr4] %>;
} }
<% end -%> <% end -%>
Simple usage: Simple usage:
INTERFACE = 're0'.freeze INTERFACE = 're0'.freeze
JAILS = [{ JAILS = [{
name: 'freebsd-10r1', name: 'freebsd-10r1',
src: true, src: true,
addr4: '10.0.0.1' addr4: '10.0.0.1'
}] }]
task :jails_conf do task :jails_conf do
conf = template 'freebsd/jail.conf', if: INTERFACE, jails: JAILS conf = template 'freebsd/jail.conf', if: INTERFACE, jails: JAILS
file_write_once '/etc/jail.conf', conf file_write_once '/etc/jail.conf', conf
end end
```
Macros Macros
@@ -225,100 +227,102 @@ Sample recipe
Based on the previous template example (FreeBSD jails.conf Based on the previous template example (FreeBSD jails.conf
template): template):
require 'producer/stdlib' ```ruby
require 'producer/stdlib'
JAILS_ROOT = '/var/jails'.freeze JAILS_ROOT = '/var/jails'.freeze
ZROOT = 'tank/jails'.freeze ZROOT = 'tank/jails'.freeze
INTERFACE = 're0'.freeze INTERFACE = 're0'.freeze
SETS = { SETS = {
base: '2b028a894d25711ad496762622a52d74b1e32ee04693ad1cf056e3ddcdc23975', base: '2b028a894d25711ad496762622a52d74b1e32ee04693ad1cf056e3ddcdc23975',
src: 'f919287a5ef51d4f133f27c99c54f2e8054f408d3dd53bc60f4e233cc75ec03d' src: 'f919287a5ef51d4f133f27c99c54f2e8054f408d3dd53bc60f4e233cc75ec03d'
}.freeze }.freeze
JAILS = [ JAILS = [
{ {
name: 'freebsd-10r1', name: 'freebsd-10r1',
src: true, src: true,
addr4: '10.0.0.1' addr4: '10.0.0.1'
}, },
{ {
name: 'freebsd-10r1-gcc', name: 'freebsd-10r1-gcc',
src: true, src: true,
addr4: '10.0.0.2' addr4: '10.0.0.2'
} }
].freeze ].freeze
task :freebsd_archives_fetch do task :freebsd_archives_fetch do
SETS.keys.each { |set| condition { no_file? "/tmp/#{set}.txz"} } SETS.keys.each { |set| condition { no_file? "/tmp/#{set}.txz"} }
SETS.each do |set, sum| SETS.each do |set, sum|
sh <<-eoh sh <<-eoh
cd /tmp && \ cd /tmp && \
fetch ftp://ftp.freebsd.org:/pub/FreeBSD/releases/amd64/10.1-RELEASE/#{set}.txz && \ fetch ftp://ftp.freebsd.org:/pub/FreeBSD/releases/amd64/10.1-RELEASE/#{set}.txz && \
sha256 -c #{sum} #{set}.txz sha256 -c #{sum} #{set}.txz
eoh eoh
end
end
task :jails_fs_create do
condition { no_sh "zfs list #{ZROOT}" }
sh "zfs create -o mountpoint=#{JAILS_ROOT} -o compress=lz4 #{ZROOT}"
end
JAILS.each do |jail|
root = "#{JAILS_ROOT}/#{jail[:name]}"
fs = "#{ZROOT}/#{jail[:name]}"
task :jail_initialize do
condition { no_sh "zfs list #{fs}@install" }
task :jail_fs_create do
condition { no_sh "zfs list #{fs}" }
sh "zfs create #{fs}"
SETS.keys.each do |set|
next if set == 'src' && !jail[:src]
sh "tar -JxC #{root}/ -f /tmp/#{set}.txz"
end end
end end
task :jails_fs_create do task :rc_conf do
condition { no_sh "zfs list #{ZROOT}" } file_write_once "#{root}/etc/rc.conf", <<-eoh
sh "zfs create -o mountpoint=#{JAILS_ROOT} -o compress=lz4 #{ZROOT}" hostname=#{jail[:name]}
# ...
eoh
end end
JAILS.each do |jail| task :root_passwd do
root = "#{JAILS_ROOT}/#{jail[:name]}" sh "chroot #{root} pw user mod root -w random"
fs = "#{ZROOT}/#{jail[:name]}"
task :jail_initialize do
condition { no_sh "zfs list #{fs}@install" }
task :jail_fs_create do
condition { no_sh "zfs list #{fs}" }
sh "zfs create #{fs}"
SETS.keys.each do |set|
next if set == 'src' && !jail[:src]
sh "tar -JxC #{root}/ -f /tmp/#{set}.txz"
end
end
task :rc_conf do
file_write_once "#{root}/etc/rc.conf", <<-eoh
hostname=#{jail[:name]}
# ...
eoh
end
task :root_passwd do
sh "chroot #{root} pw user mod root -w random"
end
task :mail_aliases do
condition { no_file? "#{root}/etc/mail/aliases.db" }
sh "chroot #{root} make -C /etc/mail aliases"
end
freebsd_update_patch_interactive "#{root}/usr/sbin/freebsd-update"
task :jail_snapshot_install do
sh "zfs snapshot #{fs}@install"
end
end
task :jail_update do
condition { no_sh "zfs list #{fs}@update" }
sh "chroot #{root} freebsd-update fetch install"
sh "zfs snapshot #{fs}@update"
end
end end
task :jails_conf do task :mail_aliases do
conf = template 'freebsd/jail.conf', if: INTERFACE, jails: JAILS condition { no_file? "#{root}/etc/mail/aliases.db" }
file_write_once '/etc/jail.conf', conf
sh "chroot #{root} make -C /etc/mail aliases"
end end
freebsd_update_patch_interactive "#{root}/usr/sbin/freebsd-update"
task :jail_snapshot_install do
sh "zfs snapshot #{fs}@install"
end
end
task :jail_update do
condition { no_sh "zfs list #{fs}@update" }
sh "chroot #{root} freebsd-update fetch install"
sh "zfs snapshot #{fs}@update"
end
end
task :jails_conf do
conf = template 'freebsd/jail.conf', if: INTERFACE, jails: JAILS
file_write_once '/etc/jail.conf', conf
end
```
Similar or related code and tools Similar or related code and tools
--------------------------------- ---------------------------------