Difference between revisions of "AWS/User data"

From Ever changing code
< AWS
Jump to navigation Jump to search
Line 59: Line 59:
C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeDisks.ps1
C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeDisks.ps1
</powershell>  
</powershell>  
</source>
= Initialise disks =
<source>
<powershell>
$file = @"
select disk 1
attributes disk clear readonly
online disk
convert mbr
create partition primary
format quick fs=ntfs label="log"
assign letter="d"
"@
Set-Content -Path $env:TEMP\diskpart.cfg -Value $file
diskpart.exe /s  $env:TEMP\diskpart.cfg
</powershell>
</source>
</source>



Revision as of 18:24, 23 May 2019

User_data scripts have many derivatives depends on operating system, and following do parse the script:

  • Linux - uses cloud_init
  • Windows 2012 - ec2config
  • Windows 2016< - ec2launch

Retrieve use_data script

  1. PS1 C:> Invoke-RestMethod -uri http://169.254.169.254/latest/user-data ; never worked
  2. in a console, select instance, Instance Settings > View/Change User Data

EC2Launch

EC2Launch is a set of Windows PowerShell scripts that replaces the EC2Config service on Windows Server 2016 and later AMIs.


Configuration file

C:\ProgramData\Amazon\EC2-Windows\Launch\Config\LaunchConfig.json


Log files are in C:\ProgramData\Amazon\EC2-Windows\Launch\Log

*Ec2Launch.txt - the app itself logs
*UserDataExecution.txt - contains parsing details and the script output
*WallpaperSetup.txt -


Script parsing sections:

<script>cmd://batch commands</script>  #always is parsed 1st
<powershell></powershell>              #2nd
<persist>true</persist>               #by default is false, true will run on each reboot
<runAsLocalSystem></runAsLocalSystem>
<powershellArguments></powershellArguments>


Example user_data.tpl script that will initialise 1st attached volume

<powershell>
$file = @"
select disk 1
attributes disk clear readonly
online disk
convert mbr
create partition primary
format quick fs=ntfs label="log"
assign letter="d"
"@
Set-Content -Path ${env:TEMP}\diskpart -Value $file
diskpart.exe /s ${env:TEMP}\diskpart
</powershell>


Initialise disks using EC2Launch script, it will set a new attached disk with Active flag

<powershell>
C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeDisks.ps1
</powershell>

Initialise disks

<powershell>
$file = @"
select disk 1
attributes disk clear readonly
online disk
convert mbr
create partition primary
format quick fs=ntfs label="log"
assign letter="d"
"@
Set-Content -Path $env:TEMP\diskpart.cfg -Value $file
diskpart.exe /s   $env:TEMP\diskpart.cfg
</powershell>

Resources