You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »



Ansible playbook httpd설치 개요


Ansible Playbook

[devops@work-vm devops-lab]$ cat web-httpd-install.yml

---
- hosts: web
  vars:
    http_port: 80
    max_clients: 200
  become: true
  tasks:
  - name: ensure apache is at the latest version
    yum:
      name: httpd
      state: latest
  - name: write the apache config file
    template:
      src: /home/devops/devops-lab/httpd.conf.j2
      dest: /etc/httpd/conf/httpd.conf
    notify:
    - restart apache
  - name: ensure apache is running
    service:
      name: httpd
      state: started
  handlers:
    - name: restart apache
      service:
        name: httpd
        state: restarted

Ansible Jinja2 Template

[devops@work-vm devops-lab]$ cat httpd.conf.j2

ServerRoot "/etc/httpd"

Listen {{http_port}}

Include conf.modules.d/*.conf

User apache
Group apache

ServerAdmin root@localhost

<Directory />
    AllowOverride none
    Require all denied
</Directory>

DocumentRoot "/var/www/html"

<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

<Files ".ht*">
    Require all denied
</Files>

ErrorLog "logs/error_log"

LogLevel warn


<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    CustomLog "logs/access_log" combined
</IfModule>

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>

<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

<IfModule mime_module>
    TypesConfig /etc/mime.types

    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</IfModule>

AddDefaultCharset UTF-8

<IfModule mime_magic_module>
    MIMEMagicFile conf/magic
</IfModule>

EnableSendfile on

IncludeOptional conf.d/*.conf

Ansible Playbook 실행

[devops@work-vm devops-lab]$ ansible-playbook web-httpd-install.yml

PLAY [web] ****************************************************************************************************************************************************

TASK [Gathering Facts] ****************************************************************************************************************************************
ok: [web01-vm]
ok: [web03-vm]
ok: [web02-vm]

TASK [ensure apache is at the latest version] *****************************************************************************************************************
ok: [web01-vm]
ok: [web02-vm]
ok: [web03-vm]

TASK [write the apache config file] ***************************************************************************************************************************
changed: [web02-vm]
changed: [web01-vm]
changed: [web03-vm]

TASK [ensure apache is running] *******************************************************************************************************************************
changed: [web02-vm]
changed: [web03-vm]
changed: [web01-vm]

RUNNING HANDLER [restart apache] ******************************************************************************************************************************
changed: [web01-vm]
changed: [web02-vm]
changed: [web03-vm]

PLAY RECAP ****************************************************************************************************************************************************
web01-vm                   : ok=5    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
web02-vm                   : ok=5    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
web03-vm                   : ok=5    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Ansible Playbook 결과 검증

[devops@work-vm devops-lab]$ ansible web -m shell -a "netstat -nltp | grep httpd"

web01-vm | CHANGED | rc=0 >>
tcp6       0      0 :::80                   :::*                    LISTEN      66600/httpd

web02-vm | CHANGED | rc=0 >>
tcp6       0      0 :::80                   :::*                    LISTEN      67703/httpd

web03-vm | CHANGED | rc=0 >>
tcp6       0      0 :::80                   :::*                    LISTEN      66306/httpd

httpd 설정 변경 및 검증

[devops@work-vm devops-lab]$ cat web-httpd-install.yml

변경한 설정정보

vars:
    http_port: 81


web-httpd-install.yml
---
- hosts: web
  vars:
    http_port: 81
  tasks:
  - name: ensure apache is at the latest version
    yum:
      name: httpd
      state: latest
  - name: write the apache config file
    template:
      src: /home/devops/devops-lab/httpd.conf.j2
      dest: /etc/httpd/conf/httpd.conf
    notify:
    - restart apache
  - name: ensure apache is running
    service:
      name: httpd
      state: started
  handlers:
    - name: restart apache
      service:
        name: httpd
        state: restarted


[devops@work-vm devops-lab]$ ansible-playbook web-httpd-install.yml

PLAY [web] ****************************************************************************************************************************************************

TASK [Gathering Facts] ****************************************************************************************************************************************
ok: [web01-vm]
ok: [web02-vm]
ok: [web03-vm]

TASK [ensure apache is at the latest version] *****************************************************************************************************************
ok: [web01-vm]
ok: [web03-vm]
ok: [web02-vm]

TASK [write the apache config file] ***************************************************************************************************************************
changed: [web01-vm]
changed: [web03-vm]
changed: [web02-vm]

TASK [ensure apache is running] *******************************************************************************************************************************
ok: [web01-vm]
ok: [web02-vm]
ok: [web03-vm]

RUNNING HANDLER [restart apache] ******************************************************************************************************************************
changed: [web02-vm]
changed: [web01-vm]
changed: [web03-vm]

PLAY RECAP ****************************************************************************************************************************************************
web01-vm                   : ok=5    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
web02-vm                   : ok=5    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
web03-vm                   : ok=5    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

[devops@work-vm devops-lab]$ ansible web -m shell -a "netstat -nltp | grep httpd"
web01-vm | CHANGED | rc=0 >>
tcp6       0      0 :::81                   :::*                    LISTEN      67642/httpd

web02-vm | CHANGED | rc=0 >>
tcp6       0      0 :::81                   :::*                    LISTEN      68748/httpd

web03-vm | CHANGED | rc=0 >>
tcp6       0      0 :::81                   :::*                    LISTEN      67347/httpd

  • No labels