From 24b57a5784a00c678478b6914cada9b0f54b07d9 Mon Sep 17 00:00:00 2001 From: Derrick Johnson Date: Fri, 7 Mar 2014 18:16:27 -0500 Subject: [PATCH] initial checkin --- README.md | 4 + attributes/backup.rb | 2 + attributes/default.rb | 2 + attributes/ufw.rb | 14 +++ .../hpmiddleware-keystore-development.jks | Bin 0 -> 8354 bytes .../hpmiddleware-keystore-production.jks | Bin 0 -> 8360 bytes files/default/hpmiddleware-truststore.jks | Bin 0 -> 96168 bytes metadata.rb | 7 ++ recipes/default.rb | 60 ++++++++++++ templates/default/ehCacheConfig.xml.erb | 25 +++++ templates/default/mon-service-config.yml.erb | 68 +++++++++++++ templates/default/service-config.yml.erb | 92 ++++++++++++++++++ 12 files changed, 274 insertions(+) create mode 100644 attributes/backup.rb create mode 100644 attributes/default.rb create mode 100644 attributes/ufw.rb create mode 100644 files/default/hpmiddleware-keystore-development.jks create mode 100644 files/default/hpmiddleware-keystore-production.jks create mode 100644 files/default/hpmiddleware-truststore.jks create mode 100644 metadata.rb create mode 100644 recipes/default.rb create mode 100644 templates/default/ehCacheConfig.xml.erb create mode 100644 templates/default/mon-service-config.yml.erb create mode 100644 templates/default/service-config.yml.erb diff --git a/README.md b/README.md index e69de29..19dbb7d 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,4 @@ +# Description +Configures and sets up the MON api. Includes attributes for log backups, ossec file watching and ossec rules. +Also included is an icinga check for the service health check. + diff --git a/attributes/backup.rb b/attributes/backup.rb new file mode 100644 index 0000000..f91142e --- /dev/null +++ b/attributes/backup.rb @@ -0,0 +1,2 @@ +# Logs to backup +node.default[:mon_log_backup][:logs][:som_api] = [ '/var/log/som-api/' ] diff --git a/attributes/default.rb b/attributes/default.rb new file mode 100644 index 0000000..a06b8ab --- /dev/null +++ b/attributes/default.rb @@ -0,0 +1,2 @@ +node.default[:som_api][:group] = 'som_api' +node.default[:som_api][:owner] = 'som_api' diff --git a/attributes/ufw.rb b/attributes/ufw.rb new file mode 100644 index 0000000..e39bc27 --- /dev/null +++ b/attributes/ufw.rb @@ -0,0 +1,14 @@ +default[:som_api][:firewall][:rules] = [ + :https => { + :port => "443", + :protocol => "tcp" + }, + :https_8080 => { + :port => "8080", + :protocol => "tcp" + }, + :http_8081 => { + :port => "8081", + :protocol => "tcp" + } +] diff --git a/files/default/hpmiddleware-keystore-development.jks b/files/default/hpmiddleware-keystore-development.jks new file mode 100644 index 0000000000000000000000000000000000000000..340d991371e5c186040278ad64e51341da5a8066 GIT binary patch literal 8354 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 literal 0 HcmV?d00001 diff --git a/files/default/hpmiddleware-keystore-production.jks b/files/default/hpmiddleware-keystore-production.jks new file mode 100644 index 0000000000000000000000000000000000000000..2bf256eec8d5843300132eda472c6c9b7ffae46a GIT binary patch literal 8360 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 Fe*k4Ws(b(d literal 0 HcmV?d00001 diff --git a/files/default/hpmiddleware-truststore.jks b/files/default/hpmiddleware-truststore.jks new file mode 100644 index 0000000000000000000000000000000000000000..e255ac02feba5d67ecc3c2f619b371d6516308e1 GIT binary patch literal 96168 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 literal 0 HcmV?d00001 diff --git a/metadata.rb b/metadata.rb new file mode 100644 index 0000000..cf4d63c --- /dev/null +++ b/metadata.rb @@ -0,0 +1,7 @@ +name 'mon_api' +maintainer "MON Team" +maintainer_email "hpcs-mon-som@hp.com" +license "All rights reserved" +description "Installs/Configures mon_api" +long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) +version "0.0.1" diff --git a/recipes/default.rb b/recipes/default.rb new file mode 100644 index 0000000..e885495 --- /dev/null +++ b/recipes/default.rb @@ -0,0 +1,60 @@ +#require 'zlib' + +package 'mon-api' do + action :upgrade +end + +service 'mon-api' do + action :enable + provider Chef::Provider::Service::Upstart +end + +directory "/var/log/mon-api" do + recursive true + owner node[:mon_api][:owner] + group node[:mon_api][:group] + mode 0755 + action :create +end + +# Create the config file +template '/etc/mon/mon-api-config.yml' do + action :create + owner 'root' + group node[:mon_api][:group] + mode '640' + source "service-config.yml.erb" + variables( + :creds => creds, + :keystore_pass => keystore_pass + ) + notifies :restart, "service[som-api]" +end + + +credentials = data_bag_item(node[:mon_api][:data_bag], 'mon_credentials') +setting = data_bag_item(node[:mon_api][:data_bag], 'mon_api') + +cookbook_file "/etc/ssl/hpmiddleware-keystore.jks" do + source creds[:keystore_file] + owner 'root' + group node[:mon_api][:group] + mode '640' +end + +cookbook_file "/etc/ssl/hpmiddleware-truststore.jks" do + source "hpmiddleware-truststore.jks" + owner 'root' + group node[:mon_api][:group] + mode '640' +end + + +# Until dropwizard 0.7.0 there is no support for running on a privileged port as an unprivleged user, I work around this via ufw rules +bash "nat 443 to 8080" do + action :run + code 'echo -e "*nat\n:PREROUTING ACCEPT [0:0]\n-A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8080\nCOMMIT" >> /etc/ufw/before.rules' + not_if "grep 'to-port 8080' /etc/ufw/before.rules" + notifies :restart, "service[ufw]" +end + diff --git a/templates/default/ehCacheConfig.xml.erb b/templates/default/ehCacheConfig.xml.erb new file mode 100644 index 0000000..2b04151 --- /dev/null +++ b/templates/default/ehCacheConfig.xml.erb @@ -0,0 +1,25 @@ + + + + + + + + + \ No newline at end of file diff --git a/templates/default/mon-service-config.yml.erb b/templates/default/mon-service-config.yml.erb new file mode 100644 index 0000000..48bd679 --- /dev/null +++ b/templates/default/mon-service-config.yml.erb @@ -0,0 +1,68 @@ +# Whether this server is running on a secure port +accessedViaHttps: false + +# Cloud service integration information +cloudServices: + hpcs.compute: + version: 2 #1.1 + # API URL format with an optional placeholder for AZ + urlFormat: https://region-b.geo-1.compute.hpcloudsvc.com/v2 # https://region-a.geo-1.compute.hpcloudsvc.com/v1.1 + port: 80 + hpcs.object-store: + version: 1.0 + urlFormat: https://region-a.geo-1.objects.hpcloudsvc.com/v1.0 # https://region-a.geo-1.compute.hpcloudsvc.com/v1 + port: 80 + +# Identity (Control services) +identityService: + url: <%=@creds['identyService']['url']%> #https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/tokens + username: <%=username%> + password: <%=password%> + tenantId: <%=tenantId%> + +# Topic for publishing metrics to +metricsTopic: metrics + +# Topic for publishing domain events to +eventsTopic: events + +kafka: + brokerUris: + - <%=@settings['kafka']['hostname']%>:9092 + zookeeperUris: + - <%=@settings['kafka']['hostname']%>:2181 + healthCheckTopic: healthcheck + +database: + driverClass: com.mysql.jdbc.Driver + url: jdbc:mysql://<%= @creds['mysql']['hostname']%>:3306/<%=@creds['mysql']['schema']%>?connectTimeout=5000&autoReconnect=true + user: <%=@creds['mysql']['username'] %> + password: <%=@creds['mysql']['password'] %> + maxWaitForConnection: 1s + validationQuery: "/* MyService Health Check */ SELECT 1" + minSize: 8 + maxSize: 32 + checkConnectionWhileIdle: false + +jerseyClient: + gzipEnabledForRequests: false + +middleware: + enabled: false + serviceIds: 100 + endpointIds: 160 + serverVIP: <%= @creds['middleware']['vip']%> + serverPort: 9543 + connTimeout: 500 + connSSLClientAuth: true + keystore: /etc/ssl/hpmiddleware-keystore.jks + keystorePass: changeit + truststore: /etc/ssl/hpmiddleware-truststore.jks + truststorePass: <%= @creds['middleware']['truststore_password'] %> + connPoolMaxActive: 3 + connPoolMaxIdle: 3 + connPoolEvictPeriod: 600000 + connPoolMinIdleTime: 600000 + connRetryTimes: 2 + connRetryInterval: 50 + rolesToMatch: [user, domainuser, domainadmin] \ No newline at end of file diff --git a/templates/default/service-config.yml.erb b/templates/default/service-config.yml.erb new file mode 100644 index 0000000..17a9273 --- /dev/null +++ b/templates/default/service-config.yml.erb @@ -0,0 +1,92 @@ +repositoryType: vertica +useMiddleware: true + +roles: + users: [som-user,monitoring-user] + delegates: [som-delegate,monitoring-delegate] + +http: + port: 8080 #Note that until dropwizard 0.7.0 there is no support for privileged ports + adminPort: 8081 + maxThreads: 1024 + minThreads: 32 + connectorType: nonblocking+ssl + + contextParameters: + ServerVIP: <%= @creds[:context_params][:server_vip] %> + ServerPort: 35357 + ConnTimeout: 500 + ServiceIds: 230,260 + Endpoints: 2301,2601,2602 + ConnSSLClientAuth: True + Keystore: /etc/ssl/hpmiddleware-keystore.jks + KeystorePass: <%= @creds[:context_params][:keystore_password]%> + Truststore: /etc/ssl/hpmiddleware-truststore.jks + TruststorePass: <%= @creds[:context_params][:truststore_password] %> + ConnPoolMaxActive: 3 + ConnPoolMaxIdle: 3 + ConnPoolEvictPeriod: 60000 + ConnPoolMinIdleTime: 90000 + DelayAuthDecision: False + AuthVersion: v3 + EHCacheConfig: ehCacheConfig.xml + ssl: + keyStore: /etc/ssl/som-api-keystore.jks + keyStorePassword: <%= @keystore_pass %> + supportedProtocols: ["SSLv2Hello", "SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2"] + + requestLog: + console: + enabled: false + file: + enabled: true + currentLogFilename: /var/log/som-api/requests.log + archivedLogFilenamePattern: /var/log/som-api/requests-%d.log.gz + archivedFileCount: 32 + +database: + driverClass: com.vertica.jdbc.Driver + url: jdbc:vertica://<%= @creds[:db][:host][node[:fqdn]] %>:5433/som + user: <%= @creds[:db][:user] %> + password: "<%= @creds[:db][:password] %>" + properties: + charSet: UTF-8 + ssl: true + + # The maximum amount of time to wait on an empty pool before throwing an exception + maxWaitForConnection: 1s + + # The SQL vertica to run when validating a connection's liveness + validationQuery: "/* MyService Health Check */ SELECT 1" + + # The minimum number of connections to keep open + minSize: 8 + + # The maximum number of connections to keep open + maxSize: 64 + + # Whether or not idle connections should be validated + checkConnectionWhileIdle: false + + # How long a connection must be held before it can be validated + checkConnectionHealthWhenIdleFor: 10s + + # The maximum lifetime of an idle connection + closeConnectionIfIdleFor: 1 minute + +logging: + # Options: DEBUG, TRACE, WARN, INFO + level: INFO + + console: + enabled: false + + file: + enabled: true + # Do not write log statements below this threshold to the file + threshold: ALL + # The file to which statements will be logged + currentLogFilename: /var/log/som-api/som-api.log + archivedLogFilenamePattern: /var/log/som-api/som-api%d.log.gz + # The maximum number of log files to archive + archivedFileCount: 10