boring_services 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1cf51b8c8239ca7c000dc2fabe043321c3a490070e762741eaa44307fa521047
4
- data.tar.gz: cfa55da92f539c5d60e444f1f7f0d0a95af80a96194112c6754303fda8b7cf43
3
+ metadata.gz: 94b564e75dee1853f1050c2065959ae24d52beb7cef80eca17388d8fbeafdca7
4
+ data.tar.gz: b2c42a31274e5eefe59e8fd8b5cbcd042c4399a81f180cfe4cad9380975c5abb
5
5
  SHA512:
6
- metadata.gz: 668cc2b9f6e65930f5d7e6916dbe33ca42522e0e4139aef025c4918f328c7d73345bd449cdea3bc5bf0368fdd512268a959f92d2a87f2012d5c46d4d7ceaf782
7
- data.tar.gz: d5b0158106e76199da437fa08fb6375a103614e68b884c451730b417c0879109ad0ff278ba0b27d635ef45843e7ff9006f6092c1d03740fa949d056f115e0900
6
+ metadata.gz: 2ba6bec3757759faf219e99ebacf588d2892903a591dd6478c615227d412cb4e43a3b624e3aac4bf0efd6f37f22aa87d8551f1004146c4613d82145dbb0036b1
7
+ data.tar.gz: 2b0c28b9fcc6e8afc763d428cb101d1786f64d9942ed1382272c5cc8c680f06efab1e92240f4ff10f551205af99ca75ff40990dad5c5541c281c39746998bcd0
@@ -7,7 +7,7 @@ module BoringServices
7
7
  ssh_executor.install_package('redis-server')
8
8
  configure_redis
9
9
  ssh_executor.systemd_enable('redis-server')
10
- ssh_executor.systemd_start('redis-server')
10
+ ssh_executor.systemd_restart('redis-server')
11
11
  end
12
12
  end
13
13
 
@@ -27,13 +27,22 @@ module BoringServices
27
27
  end
28
28
  end
29
29
 
30
+ def reconfigure
31
+ execute_on_host do
32
+ puts " Reconfiguring Redis on #{label || host}..."
33
+ configure_redis
34
+ ssh_executor.systemd_restart('redis-server')
35
+ end
36
+ end
37
+
30
38
  private
31
39
 
32
40
  def configure_redis
33
41
  memory = memory_mb || 256
34
42
  listen_port = port || 6379
35
43
  password = resolve_secret('redis_password') if config.secrets['redis_password']
36
- bind_address = private_ip.to_s.strip.empty? ? "0.0.0.0" : "127.0.0.1 #{private_ip}"
44
+ has_private_ip = !private_ip.to_s.strip.empty?
45
+ bind_address = has_private_ip ? "127.0.0.1 #{private_ip}" : "0.0.0.0"
37
46
 
38
47
  config_content = <<~REDIS
39
48
  bind #{bind_address}
@@ -52,10 +61,29 @@ module BoringServices
52
61
  execute :sudo, :chown, 'redis:redis', '/etc/redis/redis.conf'
53
62
  execute :sudo, :chmod, '640', '/etc/redis/redis.conf'
54
63
 
64
+ # If using private IP (WireGuard), ensure Redis starts after WireGuard
65
+ if has_private_ip
66
+ configure_wireguard_dependency
67
+ end
68
+
55
69
  # Set vm.overcommit_memory for Redis background saves
56
70
  execute :sudo, :sysctl, '-w', 'vm.overcommit_memory=1'
57
71
  execute "echo 'vm.overcommit_memory = 1' | sudo tee -a /etc/sysctl.conf > /dev/null || true"
58
72
  end
73
+
74
+ def configure_wireguard_dependency
75
+ override_dir = '/etc/systemd/system/redis-server.service.d'
76
+ override_content = <<~SYSTEMD
77
+ [Unit]
78
+ After=wg-quick@wg0.service
79
+ Wants=wg-quick@wg0.service
80
+ SYSTEMD
81
+
82
+ execute :sudo, :mkdir, '-p', override_dir
83
+ upload! StringIO.new(override_content), '/tmp/wireguard-dependency.conf'
84
+ execute :sudo, :mv, '/tmp/wireguard-dependency.conf', "#{override_dir}/wireguard.conf"
85
+ execute :sudo, :systemctl, 'daemon-reload'
86
+ end
59
87
  end
60
88
  end
61
89
  end
@@ -1,3 +1,3 @@
1
1
  module BoringServices
2
- VERSION = '0.5.0'.freeze
2
+ VERSION = '0.7.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: boring_services
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - BoringCache