Sha256: b80840f35af47e6745bd132df684b6e0f7404f37271e663dfbffd3bf12e8b24d

Contents?: true

Size: 1.28 KB

Versions: 29

Compression:

Stored size: 1.28 KB

Contents

require 'linux_admin'

module ManageIQ
module ApplianceConsole
  class Scap
    RULES_DIR = File.expand_path("productization/appliance_console/config", ManageIQ::ApplianceConsole::RAILS_ROOT).freeze

    def initialize(rules_dir = RULES_DIR)
      @rules_dir = rules_dir
    end

    def lockdown
      if packages_installed? && config_exists?
        say("Locking down the appliance for SCAP...")
        require 'yaml'
        scap_config = YAML.load_file(yaml_filename)
        begin
          LinuxAdmin::Scap.new("rhel8").lockdown(*scap_config['rules'], scap_config['values'])
        rescue => e
          say("Configuration failed: #{e.message}")
        else
          say("Complete")
        end
      end
    end

    private

    def yaml_filename
      File.expand_path("scap_rules.yml", @rules_dir)
    end

    def packages_installed?
      if !LinuxAdmin::Scap.openscap_available?
        say("OpenSCAP has not been installed")
        false
      elsif !LinuxAdmin::Scap.ssg_available?("rhel8")
        say("SCAP Security Guide has not been installed")
        false
      else
        true
      end
    end

    def config_exists?
      if File.exist?(yaml_filename)
        true
      else
        say("SCAP rules configuration file missing")
        false
      end
    end
  end
end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
manageiq-appliance_console-10.0.1 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-10.0.0 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-9.1.1 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-9.1.0 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-9.0.2 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-9.0.1 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-9.0.0 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-8.1.0 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-7.2.2 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-7.2.1 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-7.2.0 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-8.0.0 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-7.1.1 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-7.1.0 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-7.0.6 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-7.0.5 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-7.0.4 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-7.0.3 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-7.0.2 lib/manageiq/appliance_console/scap.rb
manageiq-appliance_console-6.1.1 lib/manageiq/appliance_console/scap.rb