diff --git a/omnibus/cookbooks/firezone/files/default/ctl-commands/create_admin.rb b/omnibus/cookbooks/firezone/files/default/ctl-commands/create_admin.rb index da49bc5cf..0087d5d6f 100644 --- a/omnibus/cookbooks/firezone/files/default/ctl-commands/create_admin.rb +++ b/omnibus/cookbooks/firezone/files/default/ctl-commands/create_admin.rb @@ -10,7 +10,7 @@ Resets the password for admin with email specified by default['firezone']['admin DESC def capture - telemetry_file = "/opt/firezone/sv/phoenix/env/TELEMETRY_ID" + telemetry_file = "/var/opt/firezone/cache/telemetry_id" if File.exist?(telemetry_file) telemetry_id = File.read(telemetry_file) if telemetry_id @@ -22,7 +22,7 @@ def capture distinct_id: telemetry_id } } - unless File.exist?("#{base_path}/.disable-telemetry") || ENV["TELEMETRY_ENABLED"] == "false" + unless File.exist?("/var/opt/firezone/.disable_telemetry") || ENV["TELEMETRY_ENABLED"] == "false" Net::HTTP.post(uri, data.to_json, "Content-Type" => "application/json") end end diff --git a/omnibus/cookbooks/firezone/files/default/ctl-commands/reconfigure.rb b/omnibus/cookbooks/firezone/files/default/ctl-commands/reconfigure.rb index ea487096d..a33987946 100644 --- a/omnibus/cookbooks/firezone/files/default/ctl-commands/reconfigure.rb +++ b/omnibus/cookbooks/firezone/files/default/ctl-commands/reconfigure.rb @@ -6,7 +6,7 @@ require 'net/http' require 'json' def capture - telemetry_file = "/opt/firezone/sv/phoenix/env/TELEMETRY_ID" + telemetry_file = "/var/opt/firezone/cache/telemetry_id" if File.exist?(telemetry_file) telemetry_id = File.read(telemetry_file) if telemetry_id @@ -18,7 +18,7 @@ def capture distinct_id: telemetry_id } } - unless File.exist?("#{base_path}/.disable-telemetry") || ENV["TELEMETRY_ENABLED"] == "false" + unless File.exist?("/var/opt/firezone/.disable_telemetry") || ENV["TELEMETRY_ENABLED"] == "false" Net::HTTP.post(uri, data.to_json, "Content-Type" => "application/json") end end diff --git a/omnibus/cookbooks/firezone/libraries/config.rb b/omnibus/cookbooks/firezone/libraries/config.rb index 002e4834a..6b8865390 100644 --- a/omnibus/cookbooks/firezone/libraries/config.rb +++ b/omnibus/cookbooks/firezone/libraries/config.rb @@ -225,7 +225,6 @@ class Firezone 'WIREGUARD_IPV6_ADDRESS' => attributes['wireguard']['ipv6']['address'], # Allow env var to override config 'TELEMETRY_ENABLED' => ENV.fetch('TELEMETRY_ENABLED', attributes['telemetry']['enabled'] == false ? "false" : "true"), - 'TELEMETRY_ID' => attributes['telemetry_id'], 'CONNECTIVITY_CHECKS_ENABLED' => attributes['connectivity_checks']['enabled'].to_s, 'CONNECTIVITY_CHECKS_INTERVAL' => attributes['connectivity_checks']['interval'].to_s, diff --git a/omnibus/cookbooks/firezone/recipes/app.rb b/omnibus/cookbooks/firezone/recipes/app.rb index ae964bd8c..764ed0b67 100644 --- a/omnibus/cookbooks/firezone/recipes/app.rb +++ b/omnibus/cookbooks/firezone/recipes/app.rb @@ -41,7 +41,8 @@ file 'environment-variables' do # updated when config is updated. attributes.merge!( 'force_ssl' => node['firezone']['nginx']['force_ssl'], - 'mix_env' => 'prod' + 'mix_env' => 'prod', + 'telemetry_id' => File.read("#{node["firezone"]["var_directory"]}/cache/telemetry_id") ) content Firezone::Config.environment_variables_from(attributes) diff --git a/omnibus/cookbooks/firezone/recipes/phoenix.rb b/omnibus/cookbooks/firezone/recipes/phoenix.rb index 4c070365b..8edd2e927 100644 --- a/omnibus/cookbooks/firezone/recipes/phoenix.rb +++ b/omnibus/cookbooks/firezone/recipes/phoenix.rb @@ -60,6 +60,7 @@ if node['firezone']['phoenix']['enabled'] action :enable subscribes :restart, 'file[environment-variables]' subscribes :restart, 'file[disable-telemetry]' + subscribes :restart, 'file[telemetry-id]' end else runit_service 'phoenix' do diff --git a/omnibus/cookbooks/firezone/recipes/telemetry.rb b/omnibus/cookbooks/firezone/recipes/telemetry.rb index 0c57cc370..f19f2a36d 100644 --- a/omnibus/cookbooks/firezone/recipes/telemetry.rb +++ b/omnibus/cookbooks/firezone/recipes/telemetry.rb @@ -11,15 +11,7 @@ require "securerandom" include_recipe 'firezone::config' -disable_telemetry_path = "#{node['firezone']['install_directory']}/.disable-telemetry" -telemetry_id = - if /[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}/.match?(node['firezone']['telemetry_id'].to_s) - # already generated - node["firezone"]["telemetry_id"] - else - SecureRandom.uuid - end -node.consume_attributes("firezone" => { "telemetry_id" => telemetry_id }) +disable_telemetry_path = "#{node['firezone']['var_directory']}/.disable_telemetry" if node['firezone']['telemetry']['enabled'] == false file 'disable_telemetry' do @@ -34,3 +26,20 @@ else action :delete end end + +file "telemetry-id" do + telemetry_id = + if /[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}/.match?(node['firezone']['telemetry_id'].to_s) + # already generated + node["firezone"]["telemetry_id"] + else + SecureRandom.uuid + end + + path "#{node['firezone']['var_directory']}/cache/telemetry_id" + mode "0440" + owner node["firezone"]["user"] + group node["firezone"]["group"] + content telemetry_id + action :create_if_missing +end diff --git a/omnibus/cookbooks/firezone/templates/sv-phoenix-finish.erb b/omnibus/cookbooks/firezone/templates/sv-phoenix-finish.erb index 4cbba653c..d538f5892 100644 --- a/omnibus/cookbooks/firezone/templates/sv-phoenix-finish.erb +++ b/omnibus/cookbooks/firezone/templates/sv-phoenix-finish.erb @@ -3,8 +3,8 @@ exec 2>&1 capture () { if type curl > /dev/null; then - if [ -e /opt/firezone/sv/phoenix/env/TELEMETRY_ID ]; then - telemetry_id=`cat /opt/firezone/sv/phoenix/env/TELEMETRY_ID` + if [ -e /var/opt/firezone/cache/telemetry_id ]; then + telemetry_id=`cat /var/opt/firezone/cache/telemetry_id` if [ ! -z "$telemetry_id" ]; then curl -s -XPOST \ -H 'Content-Type: application/json' \ @@ -22,7 +22,7 @@ capture () { } if [ $1 -eq "1" ]; then - if [ ! -e /opt/firezone/.disable-telemetry ]; then + if [ ! -e /var/opt/firezone/.disable_telemetry ]; then capture || true fi diff --git a/omnibus/omnibus.rb b/omnibus/omnibus.rb index a2838aa4c..9fddf4b00 100644 --- a/omnibus/omnibus.rb +++ b/omnibus/omnibus.rb @@ -16,12 +16,8 @@ # ------------------------------------------------------------------- if ENV["CI"] base_dir("/opt/runner/omnibus-local") -elsif Dir.exist?("/vagrant") - # Running inside vagrant, use tmp dir - base_dir("/tmp/omnibus-local") else - # Running on build server, use fast SSD array dir - base_dir("/data/omnibus-local") + base_dir("/tmp/omnibus-local") end # # Alternatively you can tune the individual values diff --git a/omnibus/package-scripts/firezone/postinst b/omnibus/package-scripts/firezone/postinst index 6b446e3c0..3e69aa1e9 100755 --- a/omnibus/package-scripts/firezone/postinst +++ b/omnibus/package-scripts/firezone/postinst @@ -4,8 +4,8 @@ capture () { if type curl > /dev/null; then - if [ -e /opt/firezone/sv/phoenix/env/TELEMETRY_ID ]; then - telemetry_id=`cat /opt/firezone/sv/phoenix/env/TELEMETRY_ID` + if [ -e /var/opt/firezone/cache/telemetry_id ]; then + telemetry_id=`cat /var/opt/firezone/cache/telemetry_id` if [ ! -z "$telemetry_id" ]; then curl -s -XPOST \ -H 'Content-Type: application/json' \ @@ -21,7 +21,7 @@ capture () { fi fi } -if [ ! -e /opt/firezone/.disable-telemetry ]; then +if [ ! -e /var/opt/firezone/.disable_telemetry ]; then capture || true fi diff --git a/omnibus/package-scripts/firezone/postrm b/omnibus/package-scripts/firezone/postrm index 4433e4493..63b7894be 100755 --- a/omnibus/package-scripts/firezone/postrm +++ b/omnibus/package-scripts/firezone/postrm @@ -7,8 +7,8 @@ set -e capture () { if type curl > /dev/null; then - if [ -e /opt/firezone/sv/phoenix/env/TELEMETRY_ID ]; then - telemetry_id=`cat /opt/firezone/sv/phoenix/env/TELEMETRY_ID` + if [ -e /var/opt/firezone/cache/telemetry_id ]; then + telemetry_id=`cat /var/opt/firezone/cache/telemetry_id` if [ ! -z "$telemetry_id" ]; then curl -s -XPOST \ -H 'Content-Type: application/json' \ @@ -24,7 +24,7 @@ capture () { fi fi } -if [ ! -e /opt/firezone/.disable-telemetry ]; then +if [ ! -e /var/opt/firezone/.disable_telemetry ]; then capture || true fi diff --git a/omnibus/package-scripts/firezone/preinst b/omnibus/package-scripts/firezone/preinst index f389ec659..3aa5c6965 100755 --- a/omnibus/package-scripts/firezone/preinst +++ b/omnibus/package-scripts/firezone/preinst @@ -7,8 +7,8 @@ set -e capture () { if type curl > /dev/null; then - if [ -e /opt/firezone/sv/phoenix/env/TELEMETRY_ID ]; then - telemetry_id=`cat /opt/firezone/sv/phoenix/env/TELEMETRY_ID` + if [ -e /var/opt/firezone/cache/telemetry_id ]; then + telemetry_id=`cat /var/opt/firezone/cache/telemetry_id` if [ ! -z "$telemetry_id" ]; then curl -s -XPOST \ -H 'Content-Type: application/json' \ @@ -24,7 +24,7 @@ capture () { fi fi } -if [ ! -e /opt/firezone/.disable-telemetry ]; then +if [ ! -e /var/opt/firezone/.disable_telemetry ]; then capture || true fi diff --git a/omnibus/package-scripts/firezone/prerm b/omnibus/package-scripts/firezone/prerm index 48ace227d..6b6e902df 100755 --- a/omnibus/package-scripts/firezone/prerm +++ b/omnibus/package-scripts/firezone/prerm @@ -8,8 +8,8 @@ PROGNAME=`basename $0` capture () { if type curl > /dev/null; then - if [ -e /opt/firezone/sv/phoenix/env/TELEMETRY_ID ]; then - telemetry_id=`cat /opt/firezone/sv/phoenix/env/TELEMETRY_ID` + if [ -e /var/opt/firezone/cache/telemetry_id ]; then + telemetry_id=`cat /var/opt/firezone/cache/telemetry_id` if [ ! -z "$telemetry_id" ]; then curl -s -XPOST \ -H 'Content-Type: application/json' \ @@ -26,7 +26,7 @@ capture () { fi } -if [ ! -e /opt/firezone/.disable-telemetry ]; then +if [ ! -e /var/opt/firezone/.disable_telemetry ]; then capture || true fi diff --git a/scripts/version.exs b/scripts/version.exs index d40d906e7..5bda3701e 100644 --- a/scripts/version.exs +++ b/scripts/version.exs @@ -1,2 +1,7 @@ -{result, 0} = System.cmd(Path.join([__DIR__, "semver.sh"]), [], stderr_to_stdout: true) -result |> String.trim() +case System.cmd(Path.join([__DIR__, "semver.sh"]), [], stderr_to_stdout: true) do + {result, 0} -> + result |> String.trim() + + {_error, _exit_code} -> + "0.0.0+git.0.deadbeef" +end