From 5f30add8632cd04019df0484ceda667e2699be62 Mon Sep 17 00:00:00 2001 From: Roberto Dip Date: Thu, 15 Jun 2023 10:28:35 -0300 Subject: [PATCH] remove puppet PoC (#12317) The puppet module lives in https://github.com/fleetdm/fleet/tree/main/ee/tools/puppet/fleetdm, I'm removing this PoC to avoid any confusion --- ee/tools/puppet-fleet/examples/profiles.pp | 81 ------------------- .../lib/puppet/functions/add_host_to_team.rb | 13 --- .../puppet/functions/batch_send_profiles.rb | 12 --- .../lib/puppet/util/fleet_client.rb | 70 ---------------- .../puppet-fleet/manifests/add_profiles.pp | 12 --- .../puppet-fleet/manifests/add_to_team.pp | 13 --- ee/tools/puppet-fleet/manifests/profile.pp | 3 - ee/tools/puppet-fleet/metadata.json | 28 ------- 8 files changed, 232 deletions(-) delete mode 100644 ee/tools/puppet-fleet/examples/profiles.pp delete mode 100644 ee/tools/puppet-fleet/lib/puppet/functions/add_host_to_team.rb delete mode 100644 ee/tools/puppet-fleet/lib/puppet/functions/batch_send_profiles.rb delete mode 100644 ee/tools/puppet-fleet/lib/puppet/util/fleet_client.rb delete mode 100644 ee/tools/puppet-fleet/manifests/add_profiles.pp delete mode 100644 ee/tools/puppet-fleet/manifests/add_to_team.pp delete mode 100644 ee/tools/puppet-fleet/manifests/profile.pp delete mode 100644 ee/tools/puppet-fleet/metadata.json diff --git a/ee/tools/puppet-fleet/examples/profiles.pp b/ee/tools/puppet-fleet/examples/profiles.pp deleted file mode 100644 index 022ccf90f7..0000000000 --- a/ee/tools/puppet-fleet/examples/profiles.pp +++ /dev/null @@ -1,81 +0,0 @@ -$template = @(END) - - - - - PayloadDescription - This profile configuration is designed to apply the CIS Benchmark for - macOS 10.14 (v2.0.0), 10.15 (v2.0.0), 11.0 (v2.0.0), and 12.0 - (v1.0.0) - PayloadDisplayName - CIS - Bluetooth Sharing - PayloadEnabled - - PayloadIdentifier - cis.macOSBenchmark.section2.BluetoothSharing - PayloadScope - System - PayloadType - Configuration - PayloadUUID - 5CEBD712-28EB-432B-84C7-AA28A5A383D8 - PayloadVersion - 1 - PayloadRemovalDisallowed - - PayloadContent - - - PayloadContent - - com.apple.Bluetooth - - Forced - - - mcx_preference_settings - - PrefKeyServicesEnabled - - - - - - - PayloadDescription - Disables Bluetooth Sharing - PayloadDisplayName - Custom - PayloadEnabled - - PayloadIdentifier - 0240DD1C-70DC-4766-9018-04322BFEEAD1 - PayloadType - com.apple.ManagedClient.preferences - PayloadUUID - 0240DD1C-70DC-4766-9018-04322BFEEAD1 - PayloadVersion - 1 - - - - -END - -node default { - fleet::add_to_team{ 'Workstations': } - - fleet::add_profiles {'Workstations': - profiles => [ - inline_template($template) - ] - } - -# fleet::with_team { 'Workstations': -# profiles => [ -# profile::cis_bt_sharing, -# ] -# } -} diff --git a/ee/tools/puppet-fleet/lib/puppet/functions/add_host_to_team.rb b/ee/tools/puppet-fleet/lib/puppet/functions/add_host_to_team.rb deleted file mode 100644 index d0bf834284..0000000000 --- a/ee/tools/puppet-fleet/lib/puppet/functions/add_host_to_team.rb +++ /dev/null @@ -1,13 +0,0 @@ -# frozen_string_literal: true - -require_relative '../util/fleet_client' - -Puppet::Functions.create_function(:add_host_to_team) do - def add_host_to_team(host_uuid, team_name, fleet_host, fleet_token) - client = Puppet::Util::FleetClient.new(fleet_host, fleet_token) - team_resp = client.team_id_from_name(team_name) - return team_resp if team_resp['error'] - - client.transfer_host(team_resp['output']['teams'][0]['id'], host_uuid) - end -end diff --git a/ee/tools/puppet-fleet/lib/puppet/functions/batch_send_profiles.rb b/ee/tools/puppet-fleet/lib/puppet/functions/batch_send_profiles.rb deleted file mode 100644 index a91b496fba..0000000000 --- a/ee/tools/puppet-fleet/lib/puppet/functions/batch_send_profiles.rb +++ /dev/null @@ -1,12 +0,0 @@ -# frozen_string_literal: true - -require 'base64' -require_relative '../util/fleet_client' - -Puppet::Functions.create_function(:batch_send_profiles) do - def batch_send_profiles(team_name, profiles, fleet_host, fleet_token) - enc = profiles.map { |p| Base64.encode64(p) } - client = Puppet::Util::FleetClient.new(fleet_host, fleet_token) - client.batch_send_profiles(team_name, enc) - end -end diff --git a/ee/tools/puppet-fleet/lib/puppet/util/fleet_client.rb b/ee/tools/puppet-fleet/lib/puppet/util/fleet_client.rb deleted file mode 100644 index 0382d24b60..0000000000 --- a/ee/tools/puppet-fleet/lib/puppet/util/fleet_client.rb +++ /dev/null @@ -1,70 +0,0 @@ -# frozen_string_literal: true - -require 'net/http' -require 'net/https' -require 'uri' -require 'json' - -module Puppet - module Util - class FleetClient - def initialize(host, token) - @host = host - @token = token - end - - def transfer_host(_team_id, host_uuid) - uri = URI.parse("#{@host}/api/v1/fleet/hosts/transfer/filter") - req = Net::HTTP::Post.new(uri.request_uri) - # TODO(roperzh): last minute I refactored this into a module and - # the team_id is coming as nil, figure out why and adjust instead - # of hardcoding. - data = { - 'filters' => { query: host_uuid }, - 'team_id' => 1 - } - req.body = data.to_json - send(uri, req) - end - - def team_id_from_name(team_name) - uri = URI.parse("#{@host}/api/v1/fleet/teams?query=#{team_name}") - req = Net::HTTP::Get.new(uri.request_uri) - send(uri, req) - end - - def batch_send_profiles(team_name, profiles) - uri = URI.parse("#{@host}/api/latest/fleet/mdm/apple/profiles/batch?team_name=#{team_name}") - req = Net::HTTP::Post.new(uri.request_uri) - data = { 'profiles' => profiles } - req.body = data.to_json - send(uri, req) - end - - def send(uri, req) - output = {} - output['error'] = false - output['error_message'] = '' - http = Net::HTTP.new(uri.host, uri.port) - http.use_ssl = true - req['Authorization'] = "Bearer #{@token}" - - begin - response = http.request(req) - rescue StandardError => e - output['error'] = true - output['error_message'] = e - end - - if response.is_a?(Net::HTTPSuccess) || response.is_a?(Net::HTTPNoContent) - output['output'] = response.body unless response.body.nil? - else - output['error'] = true - output['error_message'] = response.code - end - - output - end - end - end -end diff --git a/ee/tools/puppet-fleet/manifests/add_profiles.pp b/ee/tools/puppet-fleet/manifests/add_profiles.pp deleted file mode 100644 index f2438c228e..0000000000 --- a/ee/tools/puppet-fleet/manifests/add_profiles.pp +++ /dev/null @@ -1,12 +0,0 @@ -define fleet::add_profiles ($profiles) { - $fleet_host = lookup('fleet::host', String) - $fleet_token = lookup('fleet::token', String) - - $out = batch_send_profiles($name, $profiles, $fleet_host, $fleet_token) - $error = $out['error'] - if $error { - notify{"Error pushing profiles for team ${name}: ${error_message}": loglevel => 'err'} - } else { - notify{"Team ${name} profiles updated": } - } -} diff --git a/ee/tools/puppet-fleet/manifests/add_to_team.pp b/ee/tools/puppet-fleet/manifests/add_to_team.pp deleted file mode 100644 index 0cfd558ae8..0000000000 --- a/ee/tools/puppet-fleet/manifests/add_to_team.pp +++ /dev/null @@ -1,13 +0,0 @@ -define fleet::add_to_team () { - $fleet_host = lookup('fleet::host', String) - $fleet_token = lookup('fleet::token', String) - - $udid = $facts['system_profiler']['hardware_uuid'] - $out = add_host_to_team($udid, $name, $fleet_host, $fleet_token) - $error = $out['error'] - if $error { - notify{"Error adding host ${name} to team ${team}: ${error_message}": loglevel => 'err'} - } else { - notify{"Added host ${udid} to team ${name}": } - } -} diff --git a/ee/tools/puppet-fleet/manifests/profile.pp b/ee/tools/puppet-fleet/manifests/profile.pp deleted file mode 100644 index 60626d2222..0000000000 --- a/ee/tools/puppet-fleet/manifests/profile.pp +++ /dev/null @@ -1,3 +0,0 @@ -define fleet::profile() { - notify{"profile content ${name}": } -} diff --git a/ee/tools/puppet-fleet/metadata.json b/ee/tools/puppet-fleet/metadata.json deleted file mode 100644 index 0490cd49f3..0000000000 --- a/ee/tools/puppet-fleet/metadata.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "puppet-fleet", - "author": "", - "license": "", - "version": "0.0.0-beta.0", - "summary": "Puppet Module for managing macOS Configuration Profiles", - "source": "", - "project_page": "", - "issues_url": "", - "tags": [ - "macOS", - "OS X", - "mobileconfig", - "profiles" - ], - "requirements": [ - { - "name": "puppet", - "version_requirement": ">= 4.4.0" - } - ], - "dependencies": [ - { - "name": "puppetlabs/stdlib", - "version_requirement": ">= 2.3.1" - } - ] -}