X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/35685e74fef453a260185f35571f3a019b4bb162..18db4c72edea0d2cd4df5b7d7d9011df618d0ff9:/cookbooks/oxidized/recipes/default.rb?ds=sidebyside diff --git a/cookbooks/oxidized/recipes/default.rb b/cookbooks/oxidized/recipes/default.rb index 5754ceefe..66c919908 100644 --- a/cookbooks/oxidized/recipes/default.rb +++ b/cookbooks/oxidized/recipes/default.rb @@ -29,6 +29,7 @@ package %w[ libssh2-1-dev zlib1g-dev pkg-config + libyaml-dev ] keys = data_bag_item("oxidized", "keys") @@ -75,32 +76,51 @@ git "/opt/oxidized/daemon" do depth 1 user "oxidized" group "oxidized" - notifies :run, "bundle_install[/opt/oxidized/daemon]" + notifies :run, "bundle_install[/opt/oxidized/daemon]", :immediately +end + +directory "/opt/oxidized/.ssh" do + owner "oxidized" + group "oxidized" + mode "700" end # Key is set as a deployment key in github repo -file "/opt/oxidized/.ssh/id_rsa" do +file "/opt/oxidized/.ssh/id_ed25519" do content keys["git"].join("\n") owner "oxidized" group "oxidized" mode "400" - notifies :delete, "file[/opt/oxidized/.ssh/id_rsa.pub]", :immediately + notifies :delete, "file[/opt/oxidized/.ssh/id_ed25519.pub]", :immediately notifies :restart, "service[oxidized]" end # Ensure public key is deleted if private key is changed. Trigged by notify -file "/opt/oxidized/.ssh/id_rsa.pub" do +file "/opt/oxidized/.ssh/id_ed25519.pub" do action :nothing end -execute "/opt/oxidized/.ssh/id_rsa.pub" do - command "ssh-keygen -f /opt/oxidized/.ssh/id_rsa -y > /opt/oxidized/.ssh/id_rsa.pub" +execute "/opt/oxidized/.ssh/id_ed25519.pub" do + command "ssh-keygen -f /opt/oxidized/.ssh/id_ed25519 -y > /opt/oxidized/.ssh/id_ed25519.pub" user "oxidized" group "oxidized" - creates "/opt/oxidized/.ssh/id_rsa.pub" + creates "/opt/oxidized/.ssh/id_ed25519.pub" notifies :restart, "service[oxidized]" end +ssh_known_hosts_entry "github.com" do + action [:create, :flush] + file_location "/opt/oxidized/.ssh/known_hosts" + owner "oxidized" + group "oxidized" +end + +directory "/var/lib/oxidized" do + owner "oxidized" + group "oxidized" + mode "750" +end + git "/var/lib/oxidized/configs.git" do action :sync repository "git@github.com:openstreetmap/oxidized-configs.git" # Uses oxidized ssh key @@ -123,15 +143,13 @@ systemd_service "oxidized" do after "network.target" user "oxidized" working_directory "/opt/oxidized/daemon" + runtime_directory "oxidized" exec_start "#{node[:ruby][:bundle]} exec oxidized" environment "OXIDIZED_HOME" => "/etc/oxidized", "OXIDIZED_LOGS" => "/var/log/oxidized" nice 10 - private_tmp true - private_devices true - protect_system "full" - protect_home true - no_new_privileges true + sandbox :enable_network => true + read_write_paths ["/run/oxidized", "/var/lib/oxidized", "/var/log/oxidized"] restart "on-failure" notifies :restart, "service[oxidized]" end