Advertisement
claudiostahl

Untitled

Mar 31st, 2017
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.41 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="1204"
  8. $STACK_TYPE="elastic_jobs"
  9. $MINION="$TOPOLOGY_ID-$STACK_TYPE-$INSTANCE_ID"
  10. $CUSTOMER_ID="5"
  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="FWpBPn69m157XR=t"
  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="APRADT0051204A93071D9"
  31. $DB_PASSWORD="hvWq1dF3"
  32.  
  33. $Env:Path += ";C:\Program Files (x86)\Amazon\cfn-bootstrap;C:\Program Files\Amazon\cfn-bootstrap"
  34.  
  35. echo "$DATE_LOG - Create LOG Files"
  36. New-Item $LOG_DIR\$LOG_FILE -type file
  37. New-Item $LOG_DIR\$LOG_SIGNAL -type file
  38.  
  39. echo "$DATE_LOG - INFO: Starting Userdata" >> $LOG_DIR\$LOG_FILE
  40. echo "2" > $LOG_DIR\$LOG_SIGNAL
  41.  
  42. echo "$DATE_LOG - Set Hostname" >> $LOG_DIR\$LOG_FILE
  43. $computerName = Get-WmiObject Win32_ComputerSystem
  44. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; exit 1 }
  45. $computerName.Rename($MINION)
  46. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; exit 1 }
  47.  
  48. echo "$DATE_LOG - Download Salt Minion" >> $LOG_DIR\$LOG_FILE
  49. (New-Object System.Net.WebClient).DownloadFile($SOURCE_SALT, $DESTINATION_SALT)
  50. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; exit 1 }
  51.  
  52. echo "$DATE_LOG - Install Salt Minion " >> $LOG_DIR\$LOG_FILE
  53. Start-Process -file "c:\users\administrator\downloads\Salt-Minion-$SALT_VERSION-AMD64-Setup.exe" $arguments -wait
  54. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; exit 1 }
  55.  
  56. echo "$DATE_LOG - Defining HA parameters on Minion" >> $LOG_DIR\$LOG_FILE
  57. 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"
  58. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; exit 1 }
  59.  
  60. echo "$DATE_LOG - Start Salt Minion" >> $LOG_DIR\$LOG_FILE
  61. start-service salt-minion
  62. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; exit 1 }
  63.  
  64. sleep 30
  65.  
  66. echo "$DATE_LOG - Running salt-call saltutil.sync_modules" >> $LOG_DIR\$LOG_FILE
  67. Start-Process -file $SALT_CALL_PATH "saltutil.sync_modules"
  68. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; exit 1 }
  69.  
  70. sleep 30
  71.  
  72. echo "$DATE_LOG - Running salt-call state.sls grains" >> $LOG_DIR\$LOG_FILE
  73. $saltParams = "state.sls grains"
  74. Start-Process -file $SALT_CALL_PATH $saltParams
  75. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; exit 1 }
  76.  
  77. sleep 30
  78.  
  79. echo "$DATE_LOG - Running salt-call state.sls timezone" >> $LOG_DIR\$LOG_FILE
  80. $saltParams = "state.sls so_timezone_configure pillar=`"{`'timezone`': `'$TIMEZONE`'}`""
  81. Start-Process -file $SALT_CALL_PATH $saltParams
  82. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; exit 1 }
  83.  
  84. sleep 30
  85.  
  86. echo "$DATE_LOG - Running salt-call state.sls product_os_user_configure - User Admin" >> $LOG_DIR\$LOG_FILE
  87. $saltParams = "state.sls product_os_user_configure pillar=`"{`'$MINION`': {`'user_states`': [{`'user_password`': [{`'name`': `'$ADMIN_USER_NAME`',`'password`': `'$ADMIN_USER_PASS`'}]}]}}`""
  88. Start-Process -file $SALT_CALL_PATH $saltParams
  89. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; exit 1 }
  90.  
  91. sleep 30
  92.  
  93. echo "$DATE_LOG - Running salt-call state.sls product_os_user_configure - User Cloud Admin" >> $LOG_DIR\$LOG_FILE
  94. $saltParams = "state.sls product_os_user_configure pillar=`"{`'$MINION`': {`'user_states`': [{`'user_password`': [{`'name`': `'$CLOUD_ADM_USER_NAME`',`'password`': `'$CLOUD_ADM_USER_PASS`'}]}]}}`""
  95. Start-Process -file $SALT_CALL_PATH $saltParams
  96. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; exit 1 }
  97.  
  98. sleep 30
  99.  
  100. echo "$DATE_LOG - Running salt state install.sls" >> $LOG_DIR\$LOG_FILE
  101. $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"
  102. Start-Process -file $SALT_CALL_PATH $saltParams
  103. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; exit 1 }
  104.  
  105. sleep 30
  106.  
  107. echo "$DATE_LOG - Create TAG AWS" >> $LOG_DIR\$LOG_FILE
  108. 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
  109. If ($? -ne $True) { echo "1" > $LOG_DIR\$LOG_SIGNAL; exit 1 }
  110.  
  111. echo "$DATE_LOG - SUCCESS" >> $LOG_DIR\$LOG_FILE
  112. echo "0" > $LOG_DIR\$LOG_SIGNAL
  113.  
  114. </powershell>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement