Dont know what the fuss is about
Stony Point line is fine...
Home of Shariq Mustaquim on the Internet!
Stony Point line is fine...
Prepare
ALTER DATABASE [DataBaseName] SET PARTNER OFF;
GO
ALTER DATABASE [DataBaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
DROP DATABASE DataBaseName;
GO
Backup
exec msdb.dbo.rds_restore_database
@restore_db_name='SitecoreMaster',
@s3_arn_to_restore_from='arn:aws:s3:::myinstallfiles/SitecoreMaster.bak';
Check Status
exec msdb.dbo.rds_task_status
#!/bin/sh
pemsdir='/etc/letsencrypt/archive' # default search PEMs
pfxspath='/share/letsencrypt/archive' # dest of the PFXs
passfile='/share/letsencrypt/pass.txt' # password to be applied to the PFX file
for cnvifull in `find "${pemsdir}" -name 'cert*.pem' -o -name '*chain*.pem'`
do
cnvifile=${cnvifull##*/}
cnvinum=`echo ${cnvifile%.*} | sed -e "s#[cert|chain|fullchain]##g"`
cnvipkey="${cnvifull%/*}/privkey${cnvinum}.pem"
cnvopem=`echo ${cnvifull} | sed -e "s#${pemsdir}#${pfxspath}#g"`
cnvofull="${cnvopem%.*}.pfx"
echo "- :-) ->"
echo "-in ${cnvifull}"
echo "-inkey ${cnvipkey}"
echo "-out ${cnvofull}"
mkdir -p ${cnvofull%/*}
openssl pkcs12 \
-export \
-in ${cnvifull} \
-inkey ${cnvipkey} \
-out ${cnvofull} \
-passout file:${passfile}
done
How to use Chef to add Proxy server configuration on a Windows Host?
Following is a Chef recipe:
registry_key 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings' do
values [{:name => 'MigrateProxy', :type => :dword, :data => '00000001'},
{:name => 'ProxyEnable', :type => :dword, :data => '00000001'},
{:name => 'ProxyHttp1.1', :type => :dword, :data => '00000000'},
{:name => 'ProxyServer', :type => :dword, :data => 'http://proxy.mgt.example.au:3128'},
{:name => 'ProxyOverride', :type => :dword, :data => '<local>'}
]
action :create
end
Any suggestions to version the CloudFormation template? I suggested to use the description field:
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Description" : "4.5.180 - General Platform Resources",
"Metadata" : {
},
"Parameters" : {
"PlatformParameter" : {
"Type" : "String",
"Description" : "Platform Environment"
},
"VPCId" : {
"Type" : "String",
"Description" : "Select Platform to Deploy to."
},
"DBDataTierA" : {
"Type" : "String",
"Description" : "AZ A - Web Tier"
},
"DBDataTierB" : {
"Type" : "String",
"Description" : "AZ B - Web Tier"
}
},
RDS Managed Instances are one of the top expends in AWS.
Stop/Start RDS Instance script in Python, provide a Tag "Shutdown" and "StartUp". You can program this via a Lambda handler.
from __future__ import print_function
import boto3
from datetime import datetime, timedelta
prof_name = "" # Profile Name Identifier
acc_number = "" # AWS Account Number
#boto3.setup_default_session(profile_name=prof_name)
def rds_start(list_instances):
for instance in list_instances:
this_inst = instance.split(",")
db_instance_id = this_inst[0]
environment = this_inst[1]
print ("{0} (UTC): Starting Instance '{1}' from Environment '{2}'".format(datetime.utcnow(), db_instance_id, environment))
boto3.client('rds').start_db_instance(DBInstanceIdentifier=db_instance_id)
def rds_stop(list_instances):
for instance in list_instances:
this_inst = instance.split(",")
db_instance_id = this_inst[0]
environment = this_inst[1]
print("{0} (UTC): Stopping Instance '{1}' from Environment '{2}'".format(datetime.utcnow(), this_inst[0], this_inst[1]))
boto3.client('rds').stop_db_instance(DBInstanceIdentifier=db_instance_id)
def lambda_handler(event, context):
rds = boto3.client('rds')
instances_to_start = []
instances_to_stop = []
# Date calculation
date = datetime.utcnow() + timedelta(hours=10)
current_hour = date.hour
current_day = date.weekday()
print("Running State Change Script for hour {0} on day {1}".format(current_hour, current_day))
try:
# get all of the db instances
dbs = rds.describe_db_instances()
for db in dbs['DBInstances']:
#print("--------------------------------------------")
print("Checking RDS Instance: {0} {1} {2} {3} {4}".format(db['DBInstanceIdentifier'], db['MasterUsername'], db['Endpoint']['Address'], db['Endpoint']['Port'], db['DBInstanceStatus']) )
arn = "arn:aws:rds:ap-southeast-2:" + acc_number + ":db:" + db['DBInstanceIdentifier']
# print("{0}".format(arn))
tags = rds.list_tags_for_resource(ResourceName=arn)
# print (tags)
instance_id = db['DBInstanceIdentifier']
current_status = db['DBInstanceStatus']
environment = ""
startup = ""
shutdown = ""
for tg in tags['TagList']:
if tg['Key'] == 'Environment':
environment = tg['Value']
if tg['Key'] == 'StartUp':
startup = tg['Value']
if tg['Key'] == 'Shutdown':
shutdown = tg['Value']
if environment == "PROD": # Skip prod
if startup != "":
print("Skipping Production RDS Instance. Do not assign StartUp/Shutdown Tags to PROD instances.")
if shutdown != "":
print("Skipping Production RDS Instance. Do not assign StartUp/Shutdown Tags to PROD instances.")
continue
if startup != "":
startup_schedule = startup.split(" ")
print("StartUp: {0}".format(startup_schedule))
if (int(startup_schedule[current_day]) == current_hour):
if current_status == "stopped" : instances_to_start.append(instance_id + "," + environment)
if shutdown != "":
shutdown_schedule = shutdown.split(" ")
print("Shutdown: {0}".format(shutdown_schedule))
if (int(shutdown_schedule[current_day]) == current_hour):
if current_status == "available": instances_to_stop.append(instance_id + "," + environment)
#print("--------------------------------------------")
if (len(instances_to_start) == 0): print ("{0} (UTC): No instances to start at this time.".format(datetime.utcnow()))
if (len(instances_to_stop) == 0): print ("{0} (UTC): No instances to stop at this time.".format(datetime.utcnow()))
rds_start(instances_to_start)
rds_stop(instances_to_stop)
except Exception as error:
print(error)
lambda_handler(0, 0)
Chef recipe to Download and Install a Windows Certificate (pfx format) to a Windows host:
powershell_script 'download_www_prod' do
code <<-EOH
$S3BucketName="infrastructurebkt"
$Key="certificates/Prod/www.examplesite.gov.au.pfx"
$targetPath="C:/source/www.examplesite.au.pfx"
Read-S3Object -BucketName $S3BucketName -Key $Key -file $targetPath
EOH
creates 'C:/source/www.examplesite.au.pfx'
end
windows_certificate "C:/source/www.examplesite.au.pfx" do
pfx_password "SUPERSECRETPWD"
end