Posted on
Advanced

Integration with cloud services such as AWS, Azure using CLI

Author
  • User
    Linux Bash
    Posts by this author
    Posts by this author

Leveraging Linux Bash for Cloud Integration: How to Manage AWS and Azure via CLI

In the modern cloud-centric IT landscape, efficiency in managing cloud services directly from the console is a significant advantage. For Linux users, Bash provides a powerful base for automating and managing tasks in cloud environments like AWS (Amazon Web Services) and Microsoft Azure. This guide offers a detailed walkthrough on how to use the command line interfaces (CLIs) for AWS and Azure within Bash, and provides installation instructions compatible with various Linux distributions using apt (Debian/Ubuntu), dnf (Fedora), and zypper (openSUSE).

Setting Up Your Environment

Before diving into the specifics of AWS and Azure CLI, ensure your Linux system is ready by installing the necessary CLI tools. Here are the setups for each package manager.

1. Installing AWS CLI

  • Debian/Ubuntu (apt):

    sudo apt update
    sudo apt install awscli
    
  • Fedora (dnf):

    sudo dnf install awscli
    
  • openSUSE (zypper):

    sudo zypper install aws-cli
    

2. Installing Azure CLI

  • Debian/Ubuntu (apt):

    curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
    
  • Fedora (dnf), and openSUSE (zypper): The Azure CLI can be installed using an automated script for both distributions:

    curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
    

Configuring the CLIs

Post-installation, configuring your CLI tools is essential to start interacting with the respective cloud environments.

AWS CLI Configuration: To configure AWS CLI, run:

aws configure

Follow the prompts to enter your AWS Access Key ID, Secret Access Key, region, and output format.

Azure CLI Configuration: To log into the Azure CLI, use:

az login

The previous command will open a web page where you can use your Azure credentials to log in.

Using the AWS CLI

The AWS CLI offers a broad set of commands for managing AWS services. Here's an example of listing all S3 buckets using the AWS CLI:

aws s3 ls

To create a new S3 bucket:

aws s3 mb s3://your-bucket-name

Use the AWS CLI to deploy a new EC2 instance:

aws ec2 run-instances --image-id ami-0abcdef1234567890 --count 1 --instance-type t2.micro --key-name YourKeyName

Using the Azure CLI

Azure CLI is similarly robust. Here's how to list all Azure VMs in your default subscription:

az vm list --output table

Create a new Azure VM with:

az vm create --resource-group MyResourceGroup --name MyVm --image UbuntuLTS --generate-ssh-keys

Automating Tasks with Bash Scripts

Combining Bash scripts with AWS and Azure CLI commands can automate routine tasks. For example, here is a simple Bash script to backup every bucket from AWS S3 to a directory:

#!/bin/bash
for bucket in $(aws s3 ls | awk '{print $3}')
do
  aws s3 cp s3://$bucket ~/backup/$bucket --recursive
done

Conclusion

Integrating AWS and Azure via their respective CLIs using Linux Bash scripting is an incredibly powerful technique for managing cloud resources. By setting up and using AWS CLI and Azure CLI, you gain a versatile toolkit that can automate cloud tasks directly from your terminal, making your cloud operations more efficient and manageable.

Remember, while CLI commands can control nearly every aspect of your cloud environment, always adhere to best practices regarding security, such as managing credentials safely and defining clear IAM policies.