I have an existing, already configured VM on Google Cloud Platform. It was created without a startup script, but I'd like to add one now.
How do I add it from the console.developers.google.com web interface?
You can add a startup script to an already created VM by creating a new custom metadata field. Follow these steps:
startup-script
.Paste your startup script into the value field. Don't forget the shebang. Here's an example of a valid script.
#! /bin/bash
apt-get update
apt-get install -y apache2
cat <<EOF > /var/www/index.html
<html><body><h1>Hello World</h1>
<p>This page was created from a simple startup script!</p>
</body></html>
EOF
Thanks to mimming's answer, I was looking for this to solve my issue regarding multiple IP, and his answer help me get started and finally solved my problem by add below startup-script when reboot the instance.
#! /bin/bash
sleep 60
/usr/sbin/ip route add default via 10.8.8.1 dev eth1 table rt1
/usr/sbin/ip rule add from 10.8.8.3/32 table rt1
/usr/sbin/ip rule add to 10.8.8.3/32 table rt1
remember to add "sleep 60" otherwise it might not working cause the networking not started yet.
The above answer is correct as per the question.
But what I was looking for to add multiple .sh scripts in startup metadata of GCP VM via gcloud command.
Below works for me (maybe it will help someone)
To add multiple key-value pairs at once, separate them with commas:
$ gcloud compute instances add-metadata test-instance \
--metadata=important-data="2 plus 2 equals\
4",unimportant-data=zero
Docs link- https://cloud.google.com/sdk/gcloud/reference/compute/instances/add-metadata
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With