Fix documented ruby code blocks formatting
This commit is contained in:
214
README.md
214
README.md
@@ -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
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
Reference in New Issue
Block a user