ssh-copy-id root@10.66.10.29
ssh-copy-id root@10.66.10.29
You should now be able to SSH into the host without a password you can try this
ssh root@10.66.10.29
Configure your ansible host these are in /etc/ansible/hosts
[testserver]
10.66.10.29
cd to /etc/ansible/playbook place the below in this directory, along with index.html
INDEX.HTML
<html>
<head>
<title>Welcome to ansible</title>
</head>
<body>
<h1>nginx, configured by Ansible</h1>
<p>If you can see this, Ansible successfully installed nginx.</p>
<p>{{ ansible_managed }}</p>
</body>
</html>
---
- name: Install nginx
hosts: testserver
become: true
tasks:
- name: Add epel-release repo
yum:
name: epel-release
state: present
- name: Install nginx
yum:
name: nginx
state: present
- name: Insert Index Page
template:
src: index.html
dest: /usr/share/nginx/html/index.html
- name: Start NGiNX
service:
name: nginx
state: started
- firewalld:
service: https
permanent: yes
state: enabled
- firewalld:
zone: public
service: http
permanent: yes
state: enabled
- name: Bounce firewalld
service:
name: firewalld
state: restarted
Run your playbook with
ansible-playbook build-nginx-firewalld.yml
We can verity on the remote machine that the above has been configured on the remote machine
[root@localhost ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens192
sources:
services: dhcpv6-client http https ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[root@localhost ~]# systemctl status nginx
● nginx.service – The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset : disabled)
Active: active (running) since Wed 2020-08-26 11:10:27 BST; 3h 38min ago
Process: 18598 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 18595 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 18594 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status =0/SUCCESS)
Main PID: 18600 (nginx)
CGroup: /system.slice/nginx.service
├─18600 nginx: master process /usr/sbin/nginx
└─18601 nginx: worker process
Aug 26 11:10:27 localhost.localdomain systemd[1]: Starting The nginx HTTP and…
Aug 26 11:10:27 localhost.localdomain nginx[18595]: nginx: the configuration …
Aug 26 11:10:27 localhost.localdomain nginx[18595]: nginx: configuration file…
Aug 26 11:10:27 localhost.localdomain systemd[1]: Failed to parse PID from fi…
Aug 26 11:10:27 localhost.localdomain systemd[1]: Started The nginx HTTP and …
Hint: Some lines were ellipsized, use -l to show in full
This verifies that the firewalld configuration has been applied to the remote host as configured in our playbook
You can also web browser to your NGINX server via the IP, index.html should then be shown as below.