华体会联盟hth<# .SYNOPSIS Determines if this instance should install ssm-agent and download script if so .DESCRIPTION Downloads the ssm agent installation script, runs it, must be run as Administrator #> [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 $DEFAULT_SSM_URL = "https://add-ons.manage.rackspace.com/bootstrap/gcp/gcp_bootstrap_ssm.ps1" function Test-Metadata-Flag-True($flag) { $metadata_url = "http://metadata.google.internal/computeMetadata/v1/instance/{0}" -f $flag try { $result = Invoke-WebRequest $metadata_url -Headers @{'Metadata-Flavor' = 'Google'} -UseBasicParsing } catch { return 1 } $content = [System.Text.Encoding]::ASCII.GetString($result.Content).ToLower() If ($content -eq "true" -Or $content -eq "t" -Or $content -eq "yes" -Or $content -eq "y" -Or $content -eq "1") { return 0 } return 1 } function Test-Metadata-Value($attribute) { $metadata_url = "http://metadata.google.internal/computeMetadata/v1/instance/attributes/{0}" -f $attribute try { Invoke-WebRequest $metadata_url -Headers @{'Metadata-Flavor' = 'Google'} -UseBasicParsing } catch { return $false } return $true } function Get-Metadata-Value($attribute) { $metadata_url = "http://metadata.google.internal/computeMetadata/v1/instance/attributes/{0}" -f $attribute $result = Invoke-WebRequest $metadata_url -Headers @{'Metadata-Flavor' = 'Google'} -UseBasicParsing return [System.Text.Encoding]::ASCII.GetString($result.Content) } Write-Output "Running wrapper" $ignore_ssm_installation = Test-Metadata-Flag-True "attributes/rackspace-addon-ignore" Write-Output "Result of rackspace-addon-ignore metadata is $ignore_ssm_installation" If ($ignore_ssm_installation -eq 0) { Write-Output "Instance is tagged with rackspace-addon-ignore, therefore AWS SSM Agent will not be installed.Remove tag to install agent." } Else { $install_ssm_agent_url = $DEFAULT_SSM_URL if (Test-Metadata-Value "ssm-install-url") { $install_ssm_agent_url = Get-Metadata-Value "ssm-install-url" } Write-Output "Downloading ssm installation script from $install_ssm_agent_url" $dir = $env:TEMP + "\ssm" Write-Output "tmp: $dir" New-Item -ItemType directory -Path $dir -Force Set-Location $dir (New-Object System.Net.WebClient).DownloadFile($install_ssm_agent_url, $dir + "\gcp_bootstrap_ssm.ps1") & ".\gcp_bootstrap_ssm.ps1" }
Baidu
map