How to install GUI (Desktop) in Amazon Linux 2 AMI - amazon-web-services

I am trying to install GUI on my Amazon Linux 2 AMI. I tried several solutions like GNNOME and Mate Desktop, but when I try to install desktop by group list I get a warning:
group Desktop does not exist or GNOME does not exist.
How can I resolve this issue?

This is now supported.
See this article in the AWS knowledge base:
How do I install a GUI on my Amazon EC2 instance running Amazon Linux 2?
Last updated: 2021-04-20
I want to install a graphical user interface (GUI) in my Amazon Elastic Compute Cloud (Amazon EC2) instance running Amazon Linux 2. How do I do this?
Short description
To install a GUI on your EC2 Linux instance, do the following:
Install the MATE desktop environment. MATE is a lightweight GUI based on GNOME 2 available as an extra for Amazon Linux 2. The Amazon Linux 2 offering of Amazon WorkSpaces uses MATE. For more information about MATE, see the MATE desktop environment website.
Install a virtual network computing (VNC) service, such as TigerVNC. For more information about TigerVNC, see the tigervnc.org website.
Connect to the GUI using the VNC.
(Optional) Install a web browser, such as Firefox or Chromium. For more information on Firefox, see the mozilla.org website. For more information on Chromium, see the chromium.org website.
Note: These instructions apply only to Amazon Linux 2. To confirm the version that you're running, run the following command:
cat /etc/os-release

Related

How can I view files in EC2 instance?

I have just started learning about AWS. I am following along a tutorial and I have created a hello.txt file in EC2 using PuTTY on Windows. I wanted to know where I can see all the files listed in the EC2 instance on a GUI. I believe they are not stored locally on my computer; but I cannot find them on the AWS console either? Thank you.
PuTTY console screenshot
After some more AWS training, I found out that I can also see the files and folders in my EC2 instance in a "GUI" format using the Fleet Manager in AWS Systems Manager. The Systems Manager Agent must be installed in the EC2 instance and the instance must be given the appropriate permissions using IAM.
I wanted to know where I can see all the files listed in the EC2 instance on a GUI
Short answer:
Using a Windows PC to access an AWS EC2 you use PuTTY to navigate the file system. The hello.txt file you created is listed.
To open it you can do a cat hello.txt.
Official Answer:
https://aws.amazon.com/premiumsupport/knowledge-center/ec2-linux-2-install-gui/
The instructions get you to install the MATE desktop environment, a lightweight GUI based on GNOME 2 available as an extra for Amazon Linux 2.

How to migrate EC2 isntance from aws to azure (ubuntu 16.04 instance)

I have AWES EC-2 instances with Ubuntu 16.04 , how to migrate them to Microsoft azure?
I have their image Amazon Machine Images (AMI) on amazon web services, is there a way I could migrate the images to azure ? or the instance configuration? I prefer copy the image I have create in amazon web services (with Ubuntu 16.04 base) to azure.
I have seen this documentation: https://learn.microsoft.com/en-us/azure/site-recovery/migrate-tutorial-aws-azure but it does not specify Ubuntu support and it copy the instance, can I copy the image? and can it be perform with ubuntu 16.04?
As you see, all the support OS version show there. So, unfortunately, it does not support Ubuntu to migrate from AWES to Azure. For Linux, it just supports a part of Red Hat and Centos versions.
For the image, it's possible to export the VM to a VHD file and upload the Azure, but it just shows the Windows VM. You can get the whole steps from Move a Windows VM from Amazon Web Services (AWS) to an Azure virtual machine. You can try for Linux, but I'm not sure about it.
If you have any more questions, please let me know. Or if you think it's OK you can accept it :-)
I suggest you strongly consider implementing the base instance configuration as a userdata or init script. This start up script would install all required software and configuration settings on the instance.
This way you can simply run the script on the Azure instance, and it will work exactly as it would on the AWS instance.
This approach is best practice for managing a baseline configuration of any instance. You can also consider configuration management tools like Ansible to do the same.

Run Vagrant on Amazon Workspaces

I'm trying to set up a web development environment on Amazon Workspaces running Amazon Linux AMI, but I didn't find a way to install Vagrant on the machine. I would like to have a virtual webdev machine for various practical reasons, but it seems that I can't run vagrant as AWS is already virtualised.
Is that correct, or is there a way to install and run vagrant/virtualbox containers on AWS Workspace?
AWS workspaces only offers a limited number of packages within its repo manager, so you won't find vagrant there. But you can manually install the repo using the CentOS download on their website. For example, this worked for me inside my Linux AMI WorkSpace:
wget https://releases.hashicorp.com/vagrant/2.1.2/vagrant_2.1.2_x86_64.rpm
yum install vagrant_2.1.2_x86_64.rpm
Now a WorkSpace is essentially a virtualized environment, so its unlikely you will be able to run a vm inside it - See this.
However vagrant offers a number of providers other than the default - including aws, which will allow you to spin up a vagrant box on an ec2 instance rather than locally. You can install it as follows:
vagrant plugin install vagrant-aws
And follow the configuration steps here

Ubuntu AWS Workspace

We've been toying with switching to cloud based desktops, specifically AWS Workspace. Is there support for Ubuntu desktops though? To this point I've only been able to generate Windows environments.
UPDATE: Amazon Workspaces now supports Amazon Linux 2, an offshoot of CentOS.
Update: Workspaces now have a linux option, in case anyone finds this.
AWS Workspaces only supports Windows at the moment.
From the product description:
Amazon WorkSpaces is a managed, secure cloud desktop service. You can use Amazon WorkSpaces to provision either Windows or Linux desktops
Amazon Workspaces now allows the use of Windows 7 and Windows 10, as well as Amazon Linux 2. There are options that are eligible for the Free Tier.
Descriptions of what software you can install are available here.

Rare scenario in DevOps - using jenkins

I have new to aws and jenkins. I have a scenario as below.
We have an aws AMI which has jenkins installed in it. The AMI is a Linux platform. We already have few jobs set in the AMI for code bases (PHP and Python) for Development and QA environment.
Now that we have a new framework in .net which is again a part of the same project done in PHP. These are windows services written in .net.
Right now the deployment are performed manually. We pull the code and build the code in the same machine. So we take care of stop/starting the services manually during this process on the Windows AMI dedicated for this testing. We would like to create a job (build and deploy) as we do for python and PHP.
The challenge is that we want to build the code on the Windows AMI and the jenkins in running on Linux AMI.
Is there a way to establish a connection between the AMI's running in different operating systems in aws.
Should we install powershell in windows to have ssh access. In that case we can establish a connection from Linux AMI to Windows AMI and then execute a .bat to do the rest of activities.
** We are specifically asked not to install another jenkins in Windows system since we want to maintain all the jobs in a single place and single server.
Its not actually a very rare scenario. Its not uncommon to have Jenkins running on Linux and also have the need to build and deploy windows applications using it.
Lucky for you Jenkins handles this quite easily using the concept of a master/slave architecture, where in your case the master node will be your primary Jenkins install running on Linux and you will setup one or more 'slave' instances running windows and the jenkins agent that allows the two to coordinate.
Its all explained here:
https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds