Overslaan naar inhoud
  • +31 653-919-302
Cafayate.Net
  • 0
  • 0
  • Aanmelden
  • Nederlands English (US) Español (AR)
  • Contact
  • Startpagina
  • Blog
  • Vacatures
  • Contact
Cafayate.Net
  • 0
  • 0
    • Startpagina
    • Blog
    • Vacatures
    • Contact
  • +31 653-919-302
  • Nederlands English (US) Español (AR)
  • Aanmelden
  • Contact

Get started with Ansible – installation and basics.

  • Alle blogs
  • Tech Blog
  • Get started with Ansible – installation and basics.
  • 5 maart 2021 in
    Administrator

     

    Command Rundown

    We start by creating an SSH key into my Digital Ocean account. To create this SSH key, we’d locally run:

    cd ~/.ssh
    ssh-keygen -t rsa -b 4096 -C "[email protected]" -f id_ansible
    
    # Get key into Mac's clipboard
    cat id_ansible.pub | pbcopy
    

    That SSH key will be added to any server I create on Digital Ocean. This will ensure Ansible can log into any server we want to provision.

    For this example, I create 3 servers on Digital Ocean.

    In my local server I connect to the servers like so:

    ssh -o "IdentitiesOnly yes" -i ~/.ssh/id_ansible root@[server-ip-here]
    

    I can see I can connect, so I know the key-pair authentication is working over SSH.

    Install Ansible

    We’re using an Ubuntu server (locally, via Vagrant). To install Ansible, run:

    # Run this if we don't have the "add-apt-repository" command
    sudo apt-get install -y software-properties-common
    
    # Add Ansible's official repository
    sudo add-apt-repository -y ppa:ansible/ansible
    
    # Update repositories
    
    # Install Ansible
    sudo apt-get install -y ansible
    
    # Ensure installed
    which ansible
    

    You can see how to install Ansible on other distributions here.

    Ansible is agentless – we don’t need to install an agent on the servers we provision. The servers just need Python and the ability to connect over SSH.

    Configure Ansible

    Ansible is inside of /etc/ansible. Lets move the original out of the way and edit create a new one.

    sudo mv /etc/ansible/hosts /etc/ansible/hosts.bak
    sudo vim /etc/ansible/hosts
    

    Edit /etc/ansible/hosts and make it look like this:

    [web]
    104.131.7.243
    104.131.28.172
    104.131.43.90
    

    Now we have our three servers defined as hosts for Ansible to use.

    Run Some Commands on Each Host

    We’ll run some arbitrary commands.

    # Run ping as user root on each server
    ansible all -m ping -u root
    

    We run into an SSH error, it doesn’t find the correct key, falling back to password.

    Instead, we try the following, which works:

    ansible all -m ping -u root --private-key=~/.ssh/id_ansible
    

    Another way we can do this is as follows, which uses the “shell” command. This let’s us run any shell command on the servers.

    ansible all -m shell -a "ping -c 3 localhost" \
            -u root --private-key=~/.ssh/id_ansible
    

    Install Nginx

    We’ll use the “apt” module to install Nginx across each server. This let’s us declaratively tell Ansible what we want the desired state to be.

    ansible all -m apt -a "pkg=nginx state=latest update_cache=true" \
            -u root --private-key=~/.ssh/id_ansible
    

    This will install Nginx on each server!

    in Tech Blog
    How to configure HSTS on Nginx

    Ontworpen voor bedrijven

    We zijn een team van gepassioneerde mensen met als doel levens te verbeteren met vernieuwende producten. We ontwikkelen geweldige oplossingen voor al je zakelijke uitdagingen. Onze producten zijn ontworpen voor kleine tot middelgrote bedrijven die hun prestaties willen optimaliseren.

    Neem contact op

    Plantexel
    Pedernera
    Salta Capital 
    Argentina

    • +31 653-919-302
    • [email protected]
    Volg ons
    Copyright © Plantexel
    Nederlands | English (US) | Español (AR)