Compare commits
6 Commits
72f6ffa695
...
a3844b7ef6
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a3844b7ef6
|
||
|
|
6d50a32aca
|
||
|
|
7848b4d365
|
||
|
|
063e9e070c
|
||
|
|
b78e6685ed
|
||
|
|
895d293899
|
4
clients/jitsi-meet-1.json
Normal file
4
clients/jitsi-meet-1.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "jitsi-meet-1",
|
||||
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyNMD7N7s+JZM6PLlcrKN\n4jnr0jB5kU+Gr8EHtdpaBDGN5x8BahAkMuXcWfMQj4xIvUhTY4tTvDDYgcJGbrY4\ncmmt/YLX4t/OR6g2JxzIRWDBITTTlX7h5QUg10irjfPsyaU9O7lChDk4M3j5J4c2\nZFlZAar1+CeC5nwcEtNg4nL36I6bxUL5e/rEeeUGCGuqn3tAQ+GXj1G4uJYI18JQ\nhv43nIqbF+oVe5iRy58rXILd+zmbOq87cnF8O2ode44jRwtH4K0+uHTmq+83Q8Ld\n3wBZTnrQEnUDm6IuFuWfYhvNGlXAJrcmoH/wA1B5IAcuF3vhw9JY9axy+GDFszOX\nxwIDAQAB\n-----END PUBLIC KEY-----\n"
|
||||
}
|
||||
24
data_bags/credentials/borg.json
Normal file
24
data_bags/credentials/borg.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"id": "borg",
|
||||
"ssh_key": {
|
||||
"encrypted_data": "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\n",
|
||||
"iv": "3uagVTqoXUcWvs9W\n",
|
||||
"auth_tag": "s3wlsnLRHCI2NjC6/ZwbiQ==\n",
|
||||
"version": 3,
|
||||
"cipher": "aes-256-gcm"
|
||||
},
|
||||
"passphrase": {
|
||||
"encrypted_data": "wzSJQ+VfZuXmqrL3xW/LxiUvF/B6EYHAQtmhrJjt2oMT1G2OEgp5\n",
|
||||
"iv": "BqTyfQwKKCTOn3q3\n",
|
||||
"auth_tag": "sh1e8UuQSrq1o5G0O5fXCA==\n",
|
||||
"version": 3,
|
||||
"cipher": "aes-256-gcm"
|
||||
},
|
||||
"repository": {
|
||||
"encrypted_data": "Ezc5YMp0VM82dlq0+ikk2xZeqNHi+XETlsc2cDlFG/NxY408JO3ErPDEa9d9\nzud+jcCt/01GKqPdslGhP3jsUUb/f3kWMkTWqGkyWXV1121E0uHwyrva62NT\n5A==\n",
|
||||
"iv": "QtNBUjJ5NrQS0JD7\n",
|
||||
"auth_tag": "ZQImzlvHWwX1OsxMZK1jGA==\n",
|
||||
"version": 3,
|
||||
"cipher": "aes-256-gcm"
|
||||
}
|
||||
}
|
||||
@@ -12,13 +12,16 @@
|
||||
"hostname": "discourse-2",
|
||||
"ipaddress": "192.168.122.104",
|
||||
"roles": [
|
||||
"discourse"
|
||||
"kosmos_discourse",
|
||||
"kvm_guest"
|
||||
],
|
||||
"recipes": [
|
||||
"kosmos-base",
|
||||
"kosmos-base::default",
|
||||
"kosmos-dirsrv::hostsfile",
|
||||
"kosmos_discourse",
|
||||
"kosmos_discourse::default",
|
||||
"kosmos_kvm::guest",
|
||||
"apt::default",
|
||||
"timezone_iii::default",
|
||||
"timezone_iii::debian",
|
||||
@@ -33,7 +36,7 @@
|
||||
"postfix::_attributes",
|
||||
"postfix::sasl_auth",
|
||||
"hostname::default",
|
||||
"kosmos-dirsrv::hostsfile",
|
||||
"discourse::default",
|
||||
"firewall::default",
|
||||
"chef-sugar::default"
|
||||
],
|
||||
@@ -54,6 +57,7 @@
|
||||
},
|
||||
"run_list": [
|
||||
"recipe[kosmos-base]",
|
||||
"role[kvm_guest]",
|
||||
"role[kosmos_discourse]"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
"ipaddress": "192.168.122.200",
|
||||
"roles": [
|
||||
"drone",
|
||||
"postgresql_client"
|
||||
"postgresql_client",
|
||||
"kvm_guest"
|
||||
],
|
||||
"recipes": [
|
||||
"kosmos-base",
|
||||
@@ -21,6 +22,7 @@
|
||||
"kosmos_postgresql::hostsfile",
|
||||
"kosmos_drone",
|
||||
"kosmos_drone::default",
|
||||
"kosmos_kvm::guest",
|
||||
"apt::default",
|
||||
"timezone_iii::default",
|
||||
"timezone_iii::debian",
|
||||
@@ -53,6 +55,7 @@
|
||||
},
|
||||
"run_list": [
|
||||
"recipe[kosmos-base]",
|
||||
"role[kvm_guest]",
|
||||
"role[drone]"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
},
|
||||
"run_list": [
|
||||
"recipe[kosmos-base]",
|
||||
"role[kvm_guest]",
|
||||
"role[ejabberd]"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
"kosmos-base",
|
||||
"kosmos-base::default",
|
||||
"kosmos_kvm::host",
|
||||
"kosmos_kvm::backup",
|
||||
"kosmos_assets::nginx_site",
|
||||
"kosmos_discourse::nginx",
|
||||
"kosmos_drone::nginx",
|
||||
@@ -77,6 +78,7 @@
|
||||
"run_list": [
|
||||
"recipe[kosmos-base]",
|
||||
"recipe[kosmos_kvm::host]",
|
||||
"recipe[kosmos_kvm::backup]",
|
||||
"role[nginx_proxy]",
|
||||
"role[zerotier_controller]"
|
||||
]
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
"ipaddress": "192.168.122.189",
|
||||
"roles": [
|
||||
"gitea",
|
||||
"postgresql_client"
|
||||
"postgresql_client",
|
||||
"kvm_guest"
|
||||
],
|
||||
"recipes": [
|
||||
"kosmos-base",
|
||||
@@ -22,6 +23,7 @@
|
||||
"kosmos_gitea",
|
||||
"kosmos_gitea::default",
|
||||
"kosmos_gitea::backup",
|
||||
"kosmos_kvm::guest",
|
||||
"apt::default",
|
||||
"timezone_iii::default",
|
||||
"timezone_iii::debian",
|
||||
@@ -57,6 +59,7 @@
|
||||
},
|
||||
"run_list": [
|
||||
"recipe[kosmos-base]",
|
||||
"role[kvm_guest]",
|
||||
"role[gitea]"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
55
nodes/jitsi-meet-1.json
Normal file
55
nodes/jitsi-meet-1.json
Normal file
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "jitsi-meet-1",
|
||||
"normal": {
|
||||
"knife_zero": {
|
||||
"host": "10.1.1.20"
|
||||
}
|
||||
},
|
||||
"automatic": {
|
||||
"fqdn": "jitsi-meet-1",
|
||||
"os": "linux",
|
||||
"os_version": "5.4.0-1073-kvm",
|
||||
"hostname": "jitsi-meet-1",
|
||||
"ipaddress": "192.168.122.188",
|
||||
"roles": [
|
||||
"kvm_guest"
|
||||
],
|
||||
"recipes": [
|
||||
"kosmos-base",
|
||||
"kosmos-base::default",
|
||||
"kosmos_kvm::guest",
|
||||
"apt::default",
|
||||
"timezone_iii::default",
|
||||
"timezone_iii::debian",
|
||||
"ntp::default",
|
||||
"ntp::apparmor",
|
||||
"kosmos-base::systemd_emails",
|
||||
"apt::unattended-upgrades",
|
||||
"kosmos-base::firewall",
|
||||
"kosmos-postfix::default",
|
||||
"postfix::default",
|
||||
"postfix::_common",
|
||||
"postfix::_attributes",
|
||||
"postfix::sasl_auth",
|
||||
"hostname::default"
|
||||
],
|
||||
"platform": "ubuntu",
|
||||
"platform_version": "20.04",
|
||||
"cloud": null,
|
||||
"chef_packages": {
|
||||
"chef": {
|
||||
"version": "17.10.3",
|
||||
"chef_root": "/opt/chef/embedded/lib/ruby/gems/3.0.0/gems/chef-17.10.3/lib",
|
||||
"chef_effortless": null
|
||||
},
|
||||
"ohai": {
|
||||
"version": "17.9.0",
|
||||
"ohai_root": "/opt/chef/embedded/lib/ruby/gems/3.0.0/gems/ohai-17.9.0/lib/ohai"
|
||||
}
|
||||
}
|
||||
},
|
||||
"run_list": [
|
||||
"recipe[kosmos-base]",
|
||||
"role[kvm_guest]"
|
||||
]
|
||||
}
|
||||
@@ -8,12 +8,13 @@
|
||||
"automatic": {
|
||||
"fqdn": "mastodon-3",
|
||||
"os": "linux",
|
||||
"os_version": "5.4.0-1058-kvm",
|
||||
"os_version": "5.4.0-1071-kvm",
|
||||
"hostname": "mastodon-3",
|
||||
"ipaddress": "192.168.122.161",
|
||||
"roles": [
|
||||
"mastodon",
|
||||
"postgresql_client"
|
||||
"postgresql_client",
|
||||
"kvm_guest"
|
||||
],
|
||||
"recipes": [
|
||||
"kosmos-base",
|
||||
@@ -22,6 +23,7 @@
|
||||
"kosmos-mastodon",
|
||||
"kosmos-mastodon::default",
|
||||
"kosmos-mastodon::nginx",
|
||||
"kosmos_kvm::guest",
|
||||
"apt::default",
|
||||
"timezone_iii::default",
|
||||
"timezone_iii::debian",
|
||||
@@ -65,7 +67,6 @@
|
||||
"nginx::commons_conf",
|
||||
"kosmos-nginx::firewall",
|
||||
"tor-full::default",
|
||||
"poise-git::default",
|
||||
"git::default",
|
||||
"git::package",
|
||||
"kosmos-base::letsencrypt"
|
||||
@@ -86,6 +87,7 @@
|
||||
},
|
||||
"run_list": [
|
||||
"recipe[kosmos-base]",
|
||||
"role[kvm_guest]",
|
||||
"role[mastodon]"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,12 +12,14 @@
|
||||
"hostname": "nodejs-4",
|
||||
"ipaddress": "192.168.122.106",
|
||||
"roles": [
|
||||
"kvm_guest",
|
||||
"kredits_github",
|
||||
"sockethub"
|
||||
],
|
||||
"recipes": [
|
||||
"kosmos-base",
|
||||
"kosmos-base::default",
|
||||
"kosmos_kvm::guest",
|
||||
"kosmos-hubot::botka_irc-libera-chat",
|
||||
"kredits-github",
|
||||
"kredits-github::default",
|
||||
@@ -81,6 +83,7 @@
|
||||
},
|
||||
"run_list": [
|
||||
"recipe[kosmos-base]",
|
||||
"role[kvm_guest]",
|
||||
"recipe[kosmos-hubot::botka_irc-libera-chat]",
|
||||
"role[kredits_github]",
|
||||
"role[sockethub]"
|
||||
|
||||
@@ -12,11 +12,13 @@
|
||||
"hostname": "postgres-4",
|
||||
"ipaddress": "192.168.122.3",
|
||||
"roles": [
|
||||
"kvm_guest",
|
||||
"postgresql_replica"
|
||||
],
|
||||
"recipes": [
|
||||
"kosmos-base",
|
||||
"kosmos-base::default",
|
||||
"kosmos_kvm::guest",
|
||||
"kosmos_postgresql::hostsfile",
|
||||
"kosmos_postgresql::replica",
|
||||
"kosmos_postgresql::firewall",
|
||||
@@ -52,6 +54,7 @@
|
||||
},
|
||||
"run_list": [
|
||||
"recipe[kosmos-base]",
|
||||
"role[kvm_guest]",
|
||||
"role[postgresql_replica]"
|
||||
]
|
||||
}
|
||||
@@ -8,17 +8,19 @@
|
||||
"automatic": {
|
||||
"fqdn": "rs-discourse-1",
|
||||
"os": "linux",
|
||||
"os_version": "5.4.0-1073-kvm",
|
||||
"os_version": "5.4.0-1076-kvm",
|
||||
"hostname": "rs-discourse-1",
|
||||
"ipaddress": "192.168.122.30",
|
||||
"roles": [
|
||||
"remotestorage_discourse"
|
||||
"remotestorage_discourse",
|
||||
"kvm_guest"
|
||||
],
|
||||
"recipes": [
|
||||
"kosmos-base",
|
||||
"kosmos-base::default",
|
||||
"remotestorage_discourse",
|
||||
"remotestorage_discourse::default",
|
||||
"kosmos_kvm::guest",
|
||||
"apt::default",
|
||||
"timezone_iii::default",
|
||||
"timezone_iii::debian",
|
||||
@@ -54,6 +56,7 @@
|
||||
},
|
||||
"run_list": [
|
||||
"recipe[kosmos-base]",
|
||||
"role[kvm_guest]",
|
||||
"role[remotestorage_discourse]"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,17 +8,19 @@
|
||||
"automatic": {
|
||||
"fqdn": "rsk-mainnet-2",
|
||||
"os": "linux",
|
||||
"os_version": "5.4.0-1058-kvm",
|
||||
"os_version": "5.4.0-1075-kvm",
|
||||
"hostname": "rsk-mainnet-2",
|
||||
"ipaddress": "192.168.122.208",
|
||||
"roles": [
|
||||
"rskj_mainnet"
|
||||
"rskj_mainnet",
|
||||
"kvm_guest"
|
||||
],
|
||||
"recipes": [
|
||||
"kosmos-base",
|
||||
"kosmos-base::default",
|
||||
"kosmos_rsk::rskj",
|
||||
"kosmos_rsk::nginx",
|
||||
"kosmos_kvm::guest",
|
||||
"apt::default",
|
||||
"timezone_iii::default",
|
||||
"timezone_iii::debian",
|
||||
@@ -65,6 +67,7 @@
|
||||
},
|
||||
"run_list": [
|
||||
"recipe[kosmos-base]",
|
||||
"role[kvm_guest]",
|
||||
"role[rskj_mainnet]"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,17 +8,19 @@
|
||||
"automatic": {
|
||||
"fqdn": "rsk-testnet-3",
|
||||
"os": "linux",
|
||||
"os_version": "5.4.0-1058-kvm",
|
||||
"os_version": "5.4.0-1075-kvm",
|
||||
"hostname": "rsk-testnet-3",
|
||||
"ipaddress": "192.168.122.231",
|
||||
"roles": [
|
||||
"rskj_testnet"
|
||||
"rskj_testnet",
|
||||
"kvm_guest"
|
||||
],
|
||||
"recipes": [
|
||||
"kosmos-base",
|
||||
"kosmos-base::default",
|
||||
"kosmos_rsk::rskj",
|
||||
"kosmos_rsk::nginx",
|
||||
"kosmos_kvm::guest",
|
||||
"apt::default",
|
||||
"timezone_iii::default",
|
||||
"timezone_iii::debian",
|
||||
@@ -65,6 +67,7 @@
|
||||
},
|
||||
"run_list": [
|
||||
"recipe[kosmos-base]",
|
||||
"role[kvm_guest]",
|
||||
"role[rskj_testnet]"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,6 +165,8 @@ end
|
||||
|
||||
ruby_block "configuration" do
|
||||
block do
|
||||
# FIXME This is internal Chef API and should not be used from recipes, as
|
||||
# it is unsupported for that
|
||||
file = Chef::Util::FileEdit.new("#{node['mediawiki']['webdir']}/LocalSettings.php")
|
||||
file.search_file_replace_line(%r{\$wgLogo\ =\ \"\$wgResourceBasePath\/resources\/assets\/wiki.png\";},
|
||||
"$wgLogo = \"$wgResourceBasePath/skins/common/images/kosmos.png\";")
|
||||
|
||||
30
site-cookbooks/kosmos_kvm/files/backup_vm.sh
Normal file
30
site-cookbooks/kosmos_kvm/files/backup_vm.sh
Normal file
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
# GENERATED BY CHEF
|
||||
# DO NOT EDIT
|
||||
set -e
|
||||
|
||||
REPOSITORY=$BORG_REPO
|
||||
|
||||
echo "Starting backup of VM: $1"
|
||||
|
||||
echo "Dumping domain XML to /root/backups/vm_meta/$1.xml"
|
||||
virsh dumpxml --migratable $1 > /root/backups/vm_meta/$1.xml
|
||||
|
||||
virsh snapshot-create-as --domain $1 \
|
||||
--name hotswap.qcow2 \
|
||||
--no-metadata \
|
||||
--atomic \
|
||||
--quiesce \
|
||||
--disk-only \
|
||||
--diskspec vda,snapshot=external
|
||||
|
||||
borg create -v --stats \
|
||||
$REPOSITORY::$1_$(date +%F_%H-%M) \
|
||||
/var/lib/libvirt/images/$1.qcow2 \
|
||||
/root/backups/vm_meta
|
||||
|
||||
echo "Pivoting base image back to original"
|
||||
virsh blockcommit $1 vda --pivot --base=/var/lib/libvirt/images/$1.qcow2
|
||||
|
||||
echo "Removing snapshot image"
|
||||
rm /var/lib/libvirt/images/$1.hotswap.qcow2
|
||||
40
site-cookbooks/kosmos_kvm/recipes/backup.rb
Normal file
40
site-cookbooks/kosmos_kvm/recipes/backup.rb
Normal file
@@ -0,0 +1,40 @@
|
||||
#
|
||||
# Cookbook:: kosmos_kvm
|
||||
# Recipe:: backup
|
||||
#
|
||||
|
||||
apt_package "borgbackup"
|
||||
|
||||
borg_credentials = data_bag_item("credentials", "borg")
|
||||
|
||||
file "/root/.ssh/borg_rsa" do
|
||||
content borg_credentials["ssh_key"]
|
||||
mode '0600'
|
||||
end
|
||||
|
||||
bash "Add borg environment variables for bash" do
|
||||
code <<-EOF
|
||||
cat >>/root/.bashrc <<EOL
|
||||
|
||||
# GENERATED BY CHEF
|
||||
export BORG_RSH='ssh -i /root/.ssh/borg_rsa'
|
||||
export BORG_PASSPHRASE=#{borg_credentials["passphrase"]}
|
||||
export BORG_REPO='#{borg_credentials["repository"]}'
|
||||
EOF
|
||||
not_if "grep -q BORG /root/.bashrc"
|
||||
end
|
||||
|
||||
cookbook_file "/root/backups/backup_vm.sh" do
|
||||
source "backup_vm.sh"
|
||||
mode "0750"
|
||||
end
|
||||
|
||||
# Search all guests and filter by presence on current host
|
||||
vm_domains = search(:node, "role:kvm_guest").map(&:name) \
|
||||
& `virsh list --name`.strip.chomp.split("\n")
|
||||
|
||||
template "/root/backups/backup_all_vms.sh" do
|
||||
source "backup_all_vms.sh.erb"
|
||||
mode '0750'
|
||||
variables vm_domains: vm_domains
|
||||
end
|
||||
11
site-cookbooks/kosmos_kvm/templates/backup_all_vms.sh.erb
Normal file
11
site-cookbooks/kosmos_kvm/templates/backup_all_vms.sh.erb
Normal file
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
# GENERATED BY CHEF
|
||||
# DO NOT EDIT
|
||||
set -e
|
||||
|
||||
echo "Backing up all VMs with kvm_guest chef role..."
|
||||
|
||||
for domain in <%= @vm_domains.join(" ") %>
|
||||
do
|
||||
/root/backups/backup_vm.sh $domain
|
||||
done
|
||||
@@ -1,2 +1,2 @@
|
||||
node.default['rskj']['version'] = '3.2.0~focal'
|
||||
node.default['rskj']['version'] = '4.1.0~focal'
|
||||
node.default['rskj']['network'] = 'testnet'
|
||||
|
||||
Reference in New Issue
Block a user