0
votes

I am experimenting with Ansible by reading the great Ansible Up and Running book by Lorin Hochstein.

On a Ubuntu 16.04 machine with Ansible, I am trying now to run the web-tls playbook.

As example, I created a web-notls.yml file and I did put in the playbook directory:

    - name: Configure webserver with nginx
hosts: webservers
sudo: True
tasks:
- name: install nginx
apt: name=nginx update_cache=yes
- name: copy nginx config file
copy: src=files/nginx.conf dest=/etc/nginx/sites-available/default
- name: enable configuration
file: >
dest=/etc/nginx/sites-enabled/default
src=/etc/nginx/sites-available/default
state=link
- name: copy index.html
template: src=templates/index.html.j2 dest=/usr/share/nginx/html/index.html
mode=0644
- name: restart nginx
service: name=nginx state=restarted

I also specified a nginx.conffile and I did put it in playbooks/files/nginx.conf directory:

   server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ =404;
}
}

I also created hosts file to access the Vagrant machine easily and a web custom homepage to see a message after accessing the web page.

I modified the Vagrantfile to contain this code:

VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "forwarded_port", guest: 443, host: 8443
end

After this change, the port 8080 on my local machine should be forwarded t othe port 80 of the Vagrant machine, and the port 8443 on my local machine should be forwarded to ort 443 on the vagrant machine: 8080 Port forwarding Architecture When trying to run the playbook by:

$ ansible-playbook web-notls.yml

the ouput is:

luigi@luigi-H87-HD3:~/playbooks$ ansible-playbook web-notls.yml 
[DEPRECATION WARNING]: [defaults]hostfile option, The key is misleading as it can also be a list of 
hosts, a directory or a list of paths , use [defaults] inventory=/path/to/file|dir instead. This 
feature will be removed in version 2.8. Deprecation warnings can be disabled by setting 
deprecation_warnings=False in ansible.cfg.
[DEPRECATION WARNING]: Instead of sudo/sudo_user, use become/become_user and make sure become_method
 is 'sudo' (default). This feature will be removed in version 2.6. Deprecation warnings can be 
disabled by setting deprecation_warnings=False in ansible.cfg.

PLAY [Configure webserver with nginx] ***************************************************************

TASK [Gathering Facts] ******************************************************************************
ok: [testserver]

TASK [install nginx] ********************************************************************************
ok: [testserver]

TASK [copy nginx config file] ***********************************************************************
ok: [testserver]

TASK [enable configuration] *************************************************************************
ok: [testserver]

TASK [copy index.html] ******************************************************************************
ok: [testserver]

TASK [restart nginx] ********************************************************************************
changed: [testserver]

PLAY RECAP ******************************************************************************************
testserver                 : ok=6    changed=1    unreachable=0    failed=0 

It seems like no errors so far. I am now trying to open localhost:8080 address by browser on my local machine (I also tried to do a vagrant ssh and try curl localhost:8080 with no success) but I receive no results. What am I doing wrong ?

Thank you in advance!

1

1 Answers

2
votes

From a quick glance, there were no errors from the anisble output, so I think that the script did it's job. The error seems to be that you should be looking at localhost:80 not localhost:8080.