Configure webserver with nginx

2793 단어 nginxansible
Today we study an example of using Ansible to configure nginx.
We create an Ansible playbook named web-notls.yml.
Type the following commands:
- name: Configure webserver with nginx
  hosts: host1
  become: yes
  become_user: root
  become_method: su
  tasks:
    - name: install nginx
      yum: name=nginx
    - name: create sites-available directory
      file: path=/etc/nginx/sites-available state=directory mode=0755
    - name: copy nginx config file
      copy: src=files/nginx.conf dest=/etc/nginx/sites-available/default
    - name: create sites-enabled directory
      file: path=/etc/nginx/sites-enabled state=directory mode=0755
    - 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

We need to extra files.
1) files/nginx.conf
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;
        }
}

2) templates/index.html.j2

 
  Welcome to ansible
 
 
 

nginx, configured by Ansible

 

If you can see this, Ansible successfully installed nginx.

 

{{ ansible_managed }}

 

Then, we run ansible-playbook and got an error:
TASK [restart nginx] *****************************************************************************************************************************
fatal: [host1]: FAILED! => {"changed": false, "failed": true, "msg": "Unable to start service nginx: Job for nginx.service failed because the control process exited with error code. See \"systemctl status nginx.service\" and \"journalctl -xe\" for details.
"}

Why is that?
After running 
systemctl status nginx.service

The output is
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)

If we run 
lsof-i -P -n

It is found that 
httpd     ....................TCP *:80 (LISTEN)
Port 80 was used by httpd.
After we stopped httpd, the error disappeared.
Then we type "localhost" in a web browser, we got the following words printed:
nginx, configured by Ansible
If you can see this, Ansible successfully installed nginx.
Ansible managed

좋은 웹페이지 즐겨찾기