Skip to content

Latest commit

 

History

History
95 lines (72 loc) · 5.01 KB

customizing-a-photon-os-machine-on-ec2.md

File metadata and controls

95 lines (72 loc) · 5.01 KB

Customizing a Photon OS Machine on EC2

You can upload an ami image of Photon OS to Amazon Elastic Compute Cloud (EC2) and customize the Photon OS machine by using cloud-init with an EC2 data source. The Amazon machine image version of Photon OS is available as a free download on Bintray at the location https://bintray.com/vmware/photon/.

The cloud-init service is commonly used on EC2 to configure the cloud instance of a Linux image. On EC2, cloud-init sets the .ssh/authorized_keys file to let you log in with a private key from another computer, that is, a computer besides the workstation that you are already using to connect with the Amazon cloud.

Example

The cloud-config user-data file that appears in the following example contains abridged SSH authorized keys to show you how to set them.

Prerequisites

Procedure

  1. Upload the Photon OS .ami image to the Amazon cloud and configure it with cloud-init. The correct virtualization type for Photon OS is hvm.

$ mkdir bundled $ tar -zxvf ./photon-ami.tar.gz $ ec2-bundle-image -c ec2-certificate.pem -k ec2-privatekey.pem -u --arch x86_64 --image photon-ami.raw --destination ./bundled/ $ aws s3 mb s3:// $ ec2-upload-bundle --manifest ./bundled/photon-ami.manifest.xml --bucket --access-key --secret-key $ ec2-register /photon-ami.manifest.xml --name photon-ami --architecture x86_64 --virtualization-type hvm


1. Import the cloud-config data. In the following command, the `--user-data-file` option instructs cloud-init to import the cloud-config data in `user-data.txt`. The command assumes you have uploaded the `user-data.txt file` and created the keypair `mykeypair` and the security group `photon-sg`.
   
    ```
 $ ec2-run-instances <ami-ID> --instance-type m3.medium -g photon-sg --key mykeypair --user-data-file user-data.txt
Describe the instance to see its ID: 

```

$ ec2-describe-instances

    
1. Run the following command to obtain its public IP address, which you can use to connect to the instance with SSH:
	
    ```
$ aws ec2 describe-instances --instance-ids <instance-id> --query 'Reservations[*].Instances[*].PublicIpAddress' --output=text
	$ ec2-describe-images
  1. Run the following commands to terminate the machine. It is important to shut down the machine because Amazon charges you while the host is running down.

$ ec2-deregister $ ec2-terminate-instances


### Result

The following are the contents of the `user-data.txt` file that `cloud-init` applies to the machine the first time that it boots up in the cloud: 
    

#cloud-config hostname: photon-on-01 groups: - cloud-admins - cloud-users users: - default - name: photonadmin gecos: photon test admin user primary-group: cloud-admins groups: cloud-users lock-passwd: false passwd: vmware - name: photonuser gecos: photon test user primary-group: cloud-users groups: users passwd: vmware packages: - vim ssh_authorized_keys: - ssh-rsa MIIEogIBAAKCAQEAuvHKAjBhpwuomcUTpIzJWRJAe71JyBgAWrwqyN1Mk5N+c9X5 Ru2fazFA7WxQSD1KyTEvcuf8JzdBfrEJ0v3/nT2x63pvJ8fCl6HRkZtHo8zRu8vY KYTZS/sdvM/ruubHfq1ldRpgtYSqbkykoe6PCQIDAQABAoIBAEgveQtjVzHDhLTr rmwJmO316ERfkQ/chLaElhi9qwYJG/jqlNIISWFyztqD1b3fxU6m5MOBIujh7Xpg ... [email protected]


You can view the cloud-init output log file on EC2 at `/var/log/cloud-init-output.log`. 

For more information on using cloud-init user data on EC2, see [Running Commands on Your Linux Instance at Launch](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html).

For more information on how to get Photon OS up and running on EC2 and run a containerized application in the Docker engine, see [Running Photon OS on Amazon Elastic Cloud Compute](../photon_installation/Running-Photon-OS-on-Amazon-Elastic-Cloud-Compute.md).

With Photon OS, you can also build cloud images on Google Compute Engine and other cloud providers. For more information, see [Compatible Cloud Images](../photon_installation/cloud-images.md).