Sha256: 420b7e04067a647f1a59594762ef75ec734b0d3af444bf76083a509b04e38bf9

Contents?: true

Size: 1.7 KB

Versions: 1

Compression:

Stored size: 1.7 KB

Contents

# frozen_string_literal: true

require 'fileutils'

# DeployRubygem - deploy a gem using rake
# Containing a class
module DeployRubygem
  # Using Project to deploy and manage Project
  class ChefNode
    attr_reader :chef_server_url, :nodename, :policyname, :policygroup, :knife_name, :chef_client_key

    def initialize(options)
      @chef_server_url = options['chef_server_url']
      @nodename = options['node_name']
      @policyname = options['policyname']
      @policygrouop = options['policygrouop']
      @knife_name = options['knife_name']
      @chef_client_key = options['chef_client_key']
    end

    def clientrb
      {
        log_location: '/var/log/chef-client.log',
        chef_server_url: chef_server_url,
        chef_license: 'accept',
        file_cache_path: '/var/chef/cache',
        file_backup_path: '/var/chef/backup',
        node_name: nodename,
        policy_name: policyname,
        policy_group: policygroup
      }.map do |key, value|
        key_pair = [key, "'#{value}'"]
        key_pair.join(' ')
      end.join("\n")
    end

    def read_file(file_path)
      puts "REading file #{file_path}"
      puts File.read(file_path)
      puts "Had read #{File.read(file_path).split('\n').length} lines"
    end

    def boostrap
      clientrb_file = '/etc/chef/client.rb'
      clientpem_file = '/etc/chef/client.pem'

      Dir.mkdir('/etc/chef') unless Dir.exist?('/etc/chef')

      File.write(clientrb_file, clientrb)
      File.write(clientpem_file, chef_client_key.split('\\n').join("\n"))

      [clientrb_file, clientpem_file].each do |file_path|
        FileUtils.chmod(0o600, file_path)
        # read_file(file_path)
      end

      system('chef env --chef-license accept')
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
deploy_rubygem-0.60.22 lib/deploy_rubygem/chef_node.rb