Advertisement
claudiostahl

Untitled

Mar 31st, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.25 KB | None | 0 0
  1. <powershell>
  2.  
  3. echo "Initializing user data."
  4. echo "Setting Variables "
  5. $INSTANCE_ID=(Invoke-WebRequest http://169.254.169.254/latest/meta-data/instance-id | findstr "i-").substring(20)
  6. $REGION=(Invoke-WebRequest http://169.254.169.254/latest/meta-data/placement/availability-zone/ | findstr "Content" | select -First 1).substring(20) -replace ".$"
  7. $TOPOLOGY_ID=1203
  8. $STACK_TYPE=elastic_jobs
  9. $MINION="$TOPOLOGY_ID-$STACK_TYPE-$INSTANCE_ID"
  10. $CUSTOMER_ID=4
  11. $MASTER="[52.67.15.7]"
  12. $SALT_VERSION="2015.8.5"
  13. $SALT_CALL_PATH = "c:\salt\salt-call"
  14. $SALT_CONF_FILE = "c:\salt\conf\minion"
  15. $TIMEZONE="E. South America Standard Time"
  16. $LOG_DIR = "c:\"
  17. $LOG_FILE = "userdata-intera.log"
  18. $LOG_SIGNAL = "userdata_signal.log"
  19. $DATE_LOG = Get-Date -format yyyy-%M-%d:%H:%m:%s
  20. $SOURCE_SALT = "https://repo.saltstack.com/windows/Salt-Minion-$SALT_VERSION-AMD64-Setup.exe"
  21. $DESTINATION_SALT = "c:\users\administrator\downloads\Salt-Minion-$SALT_VERSION-AMD64-Setup.exe"
  22. $arguments = "/S /master=$MASTER /minion-name=$MINION /start-service=0"
  23.  
  24. $ADMIN_USER_NAME="Administrator"
  25. $ADMIN_USER_PASS="pW82w59mMaRA=6TC"
  26. $CLOUD_ADM_USER_NAME="CloudAdm"
  27. $CLOUD_ADM_USER_PASS="Intera@birl"
  28.  
  29. $SENSU_DIRECTORIES='\"C:\Totvs\AppServer\",\"C:\Totvs\Files\",\"C:\Totvs\Portal\",\"C:\Totvs\License\",\"C:\Totvs\Scripts\"'
  30. $DB_USER="APRADT0041203CC8BCE9D"
  31. $DB_PASSWORD="6N6nX1iawjC2N8s"
  32.  
  33. $Env:Path += ";C:\Program Files (x86)\Amazon\cfn-bootstrap;C:\Program Files\Amazon\cfn-bootstrap"
  34.  
  35. # Signal aws cloud formation
  36. function send_signal {
  37. param ( [int]$1 )
  38.  
  39. echo "SENDING $1"
  40. cfn-signal -e $1 --stack topology-1203 --resource CoreRmInstance --region sa-east-1
  41. }
  42.  
  43. echo "$DATE_LOG - Create LOG Files"
  44. New-Item $LOG_DIR\$LOG_FILE -type file
  45. New-Item $LOG_DIR\$LOG_SIGNAL -type file
  46.  
  47. echo "$DATE_LOG - INFO: Starting Userdata" >> $LOG_DIR\$LOG_FILE
  48. echo "2" > $LOG_DIR\$LOG_SIGNAL
  49.  
  50. echo "$DATE_LOG - Set Hostname" >> $LOG_DIR\$LOG_FILE
  51. $computerName = Get-WmiObject Win32_ComputerSystem
  52. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; send_signal 1; exit 1 }
  53. $computerName.Rename($MINION)
  54. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; send_signal 1; exit 1 }
  55.  
  56. echo "$DATE_LOG - Download CFN" >> $LOG_DIR\$LOG_FILE
  57. (New-Object System.Net.WebClient).DownloadFile($SOURCE_CFN, $DESTINATION_CFN)
  58. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; send_signal 1; exit 1 }
  59.  
  60. echo "$DATE_LOG - Install AWS-CFN-Bootstrap " >> $LOG_DIR\$LOG_FILE
  61. Start-Process -file "c:\users\administrator\downloads\aws-cfn-bootstrap-latest.msi" /quiet -wait
  62. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; send_signal 1; exit 1 }
  63.  
  64. echo "$DATE_LOG - Download Salt Minion" >> $LOG_DIR\$LOG_FILE
  65. (New-Object System.Net.WebClient).DownloadFile($SOURCE_SALT, $DESTINATION_SALT)
  66. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; send_signal 1; exit 1 }
  67.  
  68. echo "$DATE_LOG - Install Salt Minion " >> $LOG_DIR\$LOG_FILE
  69. Start-Process -file "c:\users\administrator\downloads\Salt-Minion-$SALT_VERSION-AMD64-Setup.exe" $arguments -wait
  70. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; send_signal 1; exit 1 }
  71.  
  72. echo "$DATE_LOG - Defining HA parameters on Minion" >> $LOG_DIR\$LOG_FILE
  73. Add-content $SALT_CONF_FILE "`r`nMASTER_alive_interval: 30`r`nauth_timeout: 10`r`nauth_tries: 2`r`nrandom_reauth_delay: 60`r`nrecon_default: 1000`r`nrecon_max: 5000`r`nrecon_randomize: True"
  74. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; send_signal 1; exit 1 }
  75.  
  76. echo "$DATE_LOG - Start Salt Minion" >> $LOG_DIR\$LOG_FILE
  77. start-service salt-minion
  78. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; send_signal 1; exit 1 }
  79.  
  80. sleep 30
  81.  
  82. echo "$DATE_LOG - Running salt-call saltutil.sync_modules" >> $LOG_DIR\$LOG_FILE
  83. Start-Process -file $SALT_CALL_PATH "saltutil.sync_modules"
  84. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; send_signal 1; exit 1 }
  85.  
  86. sleep 30
  87.  
  88. echo "$DATE_LOG - Running salt-call state.sls grains" >> $LOG_DIR\$LOG_FILE
  89. $saltParams = "state.sls grains"
  90. Start-Process -file $SALT_CALL_PATH $saltParams
  91. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; send_signal 1; exit 1 }
  92.  
  93. sleep 30
  94.  
  95. echo "$DATE_LOG - Running salt-call state.sls timezone" >> $LOG_DIR\$LOG_FILE
  96. $saltParams = "state.sls so_timezone_configure pillar=`"{`'timezone`': `'$TIMEZONE`'}`""
  97. Start-Process -file $SALT_CALL_PATH $saltParams
  98. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; send_signal 1; exit 1 }
  99.  
  100. sleep 30
  101.  
  102. echo "$DATE_LOG - Running salt-call state.sls product_os_user_configure - User Admin" >> $LOG_DIR\$LOG_FILE
  103. $saltParams = "state.sls product_os_user_configure pillar=`"{`'$MINION`': {`'user_states`': [{`'user_password`': [{`'name`': `'$ADMIN_USER_NAME`',`'password`': `'$ADMIN_USER_PASS`'}]}]}}`""
  104. Start-Process -file $SALT_CALL_PATH $saltParams
  105. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; send_signal 1; exit 1 }
  106.  
  107. sleep 30
  108.  
  109. echo "$DATE_LOG - Running salt-call state.sls product_os_user_configure - User Cloud Admin" >> $LOG_DIR\$LOG_FILE
  110. $saltParams = "state.sls product_os_user_configure pillar=`"{`'$MINION`': {`'user_states`': [{`'user_password`': [{`'name`': `'$CLOUD_ADM_USER_NAME`',`'password`': `'$CLOUD_ADM_USER_PASS`'}]}]}}`""
  111. Start-Process -file $SALT_CALL_PATH $saltParams
  112. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; send_signal 1; exit 1 }
  113.  
  114. sleep 30
  115.  
  116. echo "$DATE_LOG - Running salt state install.sls" >> $LOG_DIR\$LOG_FILE
  117. $saltParams = "state.sls install pillar=`"{`'admin_user_name`': `'$ADMIN_USER_NAME`', `'admin_user_pass`': `'$ADMIN_USER_PASS`', `'application_directories`': [`'$SENSU_DIRECTORIES`'], `'db_user`': `'$DB_USER`', `'db_password`': `'$DB_PASSWORD`' }`" concurrent=True"
  118. Start-Process -file $SALT_CALL_PATH $saltParams
  119. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; send_signal 1; exit 1 }
  120.  
  121. sleep 30
  122.  
  123. echo "$DATE_LOG - Create TAG AWS" >> $LOG_DIR\$LOG_FILE
  124. aws ec2 create-tags --resources $INSTANCE_ID --tags Key=topology_id,Value=$TOPOLOGY_ID Key=Name,Value=$MINION Key=hostname,Value=$MINION Key=elastic,Value=true Key=service_name,Value=rm Key=instance_type,Value=elastic_rm Key=customer_id,Value=$CUSTOMER_ID Key=product_name,Value=rm --region $REGION
  125. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; send_signal 1; exit 1 }
  126.  
  127. echo "$DATE_LOG - SUCCESS" >> $LOG_DIR\$LOG_FILE
  128. echo "0" > $LOG_DIR\$LOG_SIGNAL
  129. send_signal 0
  130.  
  131. </powershell>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement