Skip to content

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.
  • Labs icon Lab
  • A Cloud Guru
Google Cloud Platform icon
Labs

Deploying Services Using Ansible

Ansible is frequently used to manage software configuration and deployment. This exercise allows students to deploy and configure an NFS server using key features of Ansible.

Google Cloud Platform icon
Labs

Path Info

Level
Clock icon Advanced
Duration
Clock icon 1h 30m
Published
Clock icon Apr 05, 2019

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.

Table of Contents

  1. Challenge

    Create the necessary template files on the Ansible control node.

    Create the files exports.j2 and etc.hosts.j2 in /home/ansible with the noted content:

    /home/ansible/exports.j2

    {{ share_path }} *(rw)
    

    /home/ansible/etc.hosts.j2

    127.0.0.1	localhost {{ ansible_hostname}}
    {{ nfs_ip }}	{{ nfs_hostname }}
    
  2. Challenge

    Create a playbook for the server 'nfs' in the Ansible inventory.

    Create a playbook in /home/ansible/nfs.yml that meets the provided specification for the server nfs in the ansible inventory.

    Create a playbook in /home/ansible/nfs.yml with the following content: - hosts: nfs become: yes vars: share_path: /mnt/nfsroot tasks: - name: install nfs yum: name: nfs-utils state: latest - name: start and enable nfs-server service: name: nfs-server state: started enabled: yes - name: configure exports template: src: /home/ansible/exports.j2 dest: /etc/exports notify: update nfs handlers: - name: update nfs exports command: exportfs -a listen: update nfs

  3. Challenge

    Add a play for the remote host group.

    Edit /home/ansible/nfs.yml such that changes are executed on the remote host group to meet the provided requirements.

    Edit /home/ansible/nfs.yml to contain the following content after the nfs play: - hosts: remote become: yes vars: nfs_ip: "{{ hostvars['nfs']['ansible_default_ipv4']['address'] }}" nfs_hostname: "{{ hostvars['nfs']['ansible_hostname'] }}" vars_files: - /home/ansible/user-list.txt tasks: - name: configure hostsfile template: src: /home/ansible/etc.hosts.j2 dest: /etc/hosts.nfslab - name: get file status stat: path: /opt/user-agreement.txt register: filestat - name: debug info debug: var: filestat - name: create users user: name: "{{ item }}" when: filestat.stat.exists loop: "{{ users }}"

  4. Challenge

    Execute playbook to verify your playbook works correctly.

    Execute playbook /home/ansible/nfs.yml to verify your playbook works correctly.

    Run ansible-playbook /home/ansible/nfs.yml from the control node.

The Cloud Content team comprises subject matter experts hyper focused on services offered by the leading cloud vendors (AWS, GCP, and Azure), as well as cloud-related technologies such as Linux and DevOps. The team is thrilled to share their knowledge to help you build modern tech solutions from the ground up, secure and optimize your environments, and so much more!

What's a lab?

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Provided environment for hands-on practice

We will provide the credentials and environment necessary for you to practice right within your browser.

Guided walkthrough

Follow along with the author’s guided walkthrough and build something new in your provided environment!

Did you know?

On average, you retain 75% more of your learning if you get time for practice.

Start learning by doing today

View Plans