[ CoyoteKG @ 29.09.2018. 18:46 ] @
Dakle, kreirao sam Role da EC2 ima pristup S3.
Okidam ovu komandu lokalno iz mog PS
Code:
aws ec2 run-instances --image-id ami-0233214e13e500f77 --count 1 --instance-type t2.micro --iam-instance-profile Name=EC2toS3-RO --key-name Just4Fun-Frankfurt --security-group-ids sg-0257d07954da5c4b0
--user-data s3://mybucket/script.sh


Pokrene se EC2 sa svim ovim parametrima, ali mi se ne pokrene ova skripta.
Posle kad je masina dignuta i kad se zakacim na SSH, imam pristup ovoj skripti tako da nije problem do permisija.

Negde u docs nadjoh da je sintaksa
--user-data file://my_script.txt

da treba da se doda ovo file://
Ali ne kapiram gde onda fajl treba da mi bude? I da li uopste moze da skida sa S3.

[ srbaja @ 29.09.2018. 21:36 ] @
Kad se zakacis na ssh, kako bi pokrenuo tu skriptu? To sve smesti u (lokalni, na instanci) file, tj shell script, pa njega u user data.
[ CoyoteKG @ 29.09.2018. 21:54 ] @
nsam skontao kako.

Kad klikam preko GUI onda imam opciju da okinem bootscript koji je valjda u stvari user data.
Nadao sam se da moze iz CLI ovako iz jedne "kobaje" da pokrenem novu EC2 instancu koja ce da pokrene i skript.
[ srbaja @ 29.09.2018. 22:55 ] @
Ajd probaj ovako:
--user-data "#!/bin/bash\naws s3 cp s3://mybucket/script.sh /opt/script.sh\n/opt/script.sh" 

(naravno, samo ako na toj instanci postoji instaliran awscli)
[ CoyoteKG @ 09.10.2018. 10:42 ] @
Nisam imao nešto vremena da se posvetim ovome, ali evo sad... iz ove dokumentacije

https://docs.aws.amazon.com/AW...atest/UserGuide/user-data.html

kao što rekoh u prvom postu na ime fajla treba da se doda prefiks file://
Ono što nisam baš razmislio je da taj fajl treba da bude lokalno i da se okine komanda iz tog direktorijuma gde je fajl.

Code:
aws ec2 run-instances --image-id ami-0233214e13e500f77 --count 1 --instance-type t2.micro --iam-instance-profile Name=EC2toS3-RO --key-name Just4Fun-Frankfurt --security-group-ids sg-0257d07954da5c4b0
--user-data file://script.txt


Nisam našao kako da dovučem tu skriptu sa S3, ali OK, za sad mi je dovoljno i ovako.
[ plague @ 09.10.2018. 11:12 ] @
Pokusaj ovo: Specifying Parameter Values for the AWS Command Line Interface > Remote Files
[ CoyoteKG @ 09.10.2018. 11:49 ] @
probaću, ali ne želim da skripta bude public.
Ja sam već podesio IAM da sa EC2 imam permisije nad S3, ali ne znam da li EC2 instanca ima permisije u toku kreiranja ili posle. moracu da probam
[ CoyoteKG @ 09.10.2018. 13:55 ] @
Dobio sam
Error parsing parameter '--user-data': Unable to retrieve https://s3.eu-central-1.amazonaws.com/mybucket/script.txt: received non 200 status code of 403


Mora da bude public fajl,

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonS3.html
Citat:
his method requires that the object you request is public; if the object is not public, you receive an "ERROR 403: Forbidden" message. If you receive this error, open the Amazon S3 console and change the permissions of the object to public


Mogu da pristupim fajlu preko AWS CLI, recimo komandom
aws cp s3://mybucket/script.txt .
jer imam IAM polisu
Ali ne mogu izgleda preko http protokola
[ plague @ 10.10.2018. 09:19 ] @
Izvini, procitao sam temu od pocetka sada. Tvoje pitanje o tome gde treba biti file:/// odgovor je: na masini koja izvrzava aws komandu.
Na masini koja izvrsava aws ec2 run-instances napravi bash skriptu koja ce prvo dovuci file sa s3 i zatim izvrsiti komandu koju zelis posto ce se koristiti IAM za auth.

Otprilike:
Code:

aws s3 cp s3://mybucket/script.txt ./script.txt
aws ec2 run-instances --image-id ami-0233214e13e500f77 --count 1 --instance-type t2.micro --iam-instance-profile Name=EC2toS3-RO --key-name Just4Fun-Frankfurt --security-group-ids sg-0257d07954da5c4b0
--user-data file://script.txt


Nadam se da file:// sintaksa funkcionise isto kao kod nekih drugih komandi sa kojima sam imao iskustva.
[ CoyoteKG @ 10.10.2018. 09:25 ] @
Da skontao sam na kraju da treba da bude na mašini gde izvršavam tu komandu.
I da, jbg, morao bih tako, prvo da dovučem skriptu, pa okinem komandu, pa obrišem skriptu.
mislio sam da bi bilo lakše.
Pretpostavljao sam da može direktno sa S3, a fajl da nije public, ali ne može :)

hvala