- Lab
- A Cloud Guru
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.
Path Info
Table of Contents
-
Challenge
Create the necessary template files on the Ansible control node.
Create the files
exports.j2
andetc.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 }}
-
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 servernfs
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 -
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 }}" -
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.
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.