Archive abandoned project
This commit is contained in:
parent
bc8862d90b
commit
65be894048
501 changed files with 24305 additions and 0 deletions
36
esh_zfs/recipes/autobackup.rb
Normal file
36
esh_zfs/recipes/autobackup.rb
Normal file
|
@ -0,0 +1,36 @@
|
|||
#
|
||||
# Cookbook:: esh_zfs
|
||||
# Recipe:: default
|
||||
#
|
||||
# Copyright:: 2022, https://easyself.host
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
apt_package 'python3-pip'
|
||||
|
||||
execute 'pip install zfs-autobackup' do
|
||||
command 'pip install zfs-autobackup'
|
||||
not_if 'pip show zfs-autobackup > /dev/null'
|
||||
action :run
|
||||
end
|
||||
|
||||
execute 'init zfs autobackup group name' do
|
||||
command <<~EOT
|
||||
zfs set autobackup:local=true #{node['esh']['zfs']['autobackup']['src']}
|
||||
zfs set autobackup:local=false #{node['esh']['zfs']['autobackup']['src']}/default_images
|
||||
EOT
|
||||
not_if <<~EOT
|
||||
zfs get -H -t filesystem,volume autobackup:local #{node['esh']['zfs']['autobackup']['src']} | grep -q true
|
||||
EOT
|
||||
action :run
|
||||
end
|
17
esh_zfs/recipes/default.rb
Normal file
17
esh_zfs/recipes/default.rb
Normal file
|
@ -0,0 +1,17 @@
|
|||
#
|
||||
# Cookbook:: esh_zfs
|
||||
# Recipe:: default
|
||||
#
|
||||
# Copyright:: 2022, https://easyself.host
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
21
esh_zfs/recipes/package.rb
Normal file
21
esh_zfs/recipes/package.rb
Normal file
|
@ -0,0 +1,21 @@
|
|||
#
|
||||
# Cookbook:: esh_zfs
|
||||
# Recipe:: default
|
||||
#
|
||||
# Copyright:: 2022, https://easyself.host
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
apt_package 'zfsutils-linux' do
|
||||
action :install
|
||||
end
|
35
esh_zfs/recipes/pool.rb
Normal file
35
esh_zfs/recipes/pool.rb
Normal file
|
@ -0,0 +1,35 @@
|
|||
#
|
||||
# Cookbook:: esh_zfs
|
||||
# Recipe:: default
|
||||
#
|
||||
# Copyright:: 2022, https://easyself.host
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
node['esh']['zfs']['pools'].each do |pool, params|
|
||||
execute "zpool create #{pool}" do
|
||||
command <<~EOT
|
||||
zpool create \
|
||||
-m #{params['mount_point']} \
|
||||
-o ashift=#{params['ashift']} \
|
||||
-o autotrim=#{params['autotrim']} \
|
||||
-o feature@lz4_compress=#{params['lz4_compress']} \
|
||||
-O compression=#{params['compression']} \
|
||||
-O dedup=#{params['dedup']} \
|
||||
#{pool} \
|
||||
#{params['target']}
|
||||
EOT
|
||||
action :run
|
||||
not_if "zpool list #{pool}"
|
||||
end
|
||||
end
|
59
esh_zfs/recipes/scrub.rb
Normal file
59
esh_zfs/recipes/scrub.rb
Normal file
|
@ -0,0 +1,59 @@
|
|||
#
|
||||
# Cookbook:: esh_zfs
|
||||
# Recipe:: default
|
||||
#
|
||||
# Copyright:: 2022, https://easyself.host
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
template '/usr/local/bin/zfs-scrub' do
|
||||
owner 'root'
|
||||
group 'root'
|
||||
mode '0500'
|
||||
variables hc_url: node['esh']['zfs']['scrub']['hc_url'],
|
||||
pools: node['esh']['zfs']['pools']
|
||||
action :create
|
||||
end
|
||||
|
||||
systemd_unit 'zfs-scrub.service' do
|
||||
content <<~EOU
|
||||
[Unit]
|
||||
Description=zfs scrub pools
|
||||
|
||||
[Service]
|
||||
Nice=19
|
||||
IOSchedulingClass=idle
|
||||
KillSignal=SIGINT
|
||||
ExecStart=/usr/local/bin/zfs-scrub
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOU
|
||||
action [:create, :enable]
|
||||
end
|
||||
|
||||
systemd_unit 'zfs-scrub.timer' do
|
||||
content <<~EOU
|
||||
[Unit]
|
||||
Description=Monthly zpool scrub
|
||||
|
||||
[Timer]
|
||||
OnCalendar=monthly
|
||||
RandomizedDelaySec=86400
|
||||
Persistent=true
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOU
|
||||
action [:create, :enable, :start]
|
||||
end
|
Reference in a new issue