Spinning up 30 Linux Container Lab in less than 20 minutes and using Ansible to configure them
Spinning up 30 Linux Container Lab in less than 20 minutes an using Ansible to configure them
www.it-howto.co.uk
The scripts and Ansible playbooks mentioned in the video can be downloaded via
https://it-howto.co.uk/wp-content/uploads/2020/11/LXC_Lab_script.7z
Playbooks used are
YML File: verify-apache.yml
—
– hosts: webservers
vars:
http_port: 80
max_clients: 200
remote_user: root
tasks:
– name: ensure apache is at the latest version
yum:
name: httpd
state: latest
– name: open firewall port for Apache http
firewalld:
service: http
immediate: true
permanent: true
state: enabled
– name: open firewall port for Apache https
firewalld:
service: https
immediate: true
permanent: true
state: enabled
– name: write the apache config file
template:
src: /srv/httpd.j2
dest: /etc/httpd/conf/httpd.conf
– name: create default page content
copy:
content: “Welcome to {{ ansible_fqdn}} on {{ ansible_default_ipv4.address }}n”
dest: /var/www/html/index.html
notify:
– restart apache
– name: ensure apache is running
service:
name: httpd
state: started
handlers:
– name: restart apache
service:
name: httpd
state: restarted
YML File: verify-apache2.yml
—
– hosts: webservers
vars:
http_port: 80
max_clients: 200
remote_user: root
tasks:
– name: ensure apache is at the latest version
yum:
name: httpd
state: latest
– name: write the apache config file
template:
src: /srv/httpd.j2
dest: /etc/httpd/conf/httpd.conf
– name: create default page content
copy:
content: “Welcome to {{ ansible_fqdn}} on {{ ansible_default_ipv4.address }}n”
dest: /var/www/html/index.html
notify:
– restart apache
– name: ensure apache is running
service:
name: httpd
state: started
handlers:
– name: restart apache
service:
name: httpd
state: restarted
YML File: verify-firewalld.yml
—
– hosts: all
remote_user: root
tasks:
– name: ensure firewalld is at the latest version
yum:
name: firewalld
state: latest
notify:
– restart firewalld
– name: ensure firewalld is running
service:
name: firewalld
state: started
handlers:
– name: restart firewalld
service:
name: firewalld
state: restarted
YML File: verify-mariadb.yml
—
– hosts: dbservers
vars:
tcp_port: 3306
remote_user: root
tasks:
– name: ensure mariadb is at the latest version
yum:
name: mariadb-server
state: latest
– name: write the mariadb config file
template:
src: /srv/my.cnf.j2
dest: /etc/my.cnf
notify:
– restart mariadb
– name: open firewall port for mariadb
firewalld:
service: mysql
immediate: true
permanent: true
state: enabled
– name: ensure mariadb is running
service:
name: mariadb
state: started
handlers:
– name: restart mariadb
service:
name: mariadb
state: restarted
YML File: verify-os-update.yml
—
– hosts: all
remote_user: root
tasks:
– name: ensure OS is fully patched and up to date
yum:
name: “*”
state: latest
YML File: verify-packages.yml
—
– hosts: all
remote_user: root
tasks:
– name: ensure emacs-nox is at the latest version
yum:
name: emacs-nox
state: latest
– name: ensure which is at the latest version
yum:
name: which
state: latest
YML File: verify-snmpd.yml
—
– hosts: all
remote_user: root
tasks:
– name: ensure net-snmp is at the latest version
yum:
name: net-snmp
state: latest
– name: write the snmpd config file
template:
src: /srv/snmpd.j2
dest: /etc/snmp/snmpd.conf
– name: ensure net-snmp-utils is at the latest version
yum:
name: net-snmp-utils
state: latest
– name: open firewall port for snmpd
firewalld:
service: snmp
immediate: true
permanent: true
state: enabled
– name: ensure snmpd is running
service:
name: snmpd
state: restarted
handlers:
– name: restart snmpd
service:
name: snmpd
state: restarted
centos 7