Ansible - Web(Apache)

FromCloud·2023년 6월 12일
0

Ansible

목록 보기
5/10

ansible을 이용한 웹 서버 구축

이제는 ad-hoc을 사용하지 않고 .yml 파일을 생성하여 ansible-playbook 를 통해 자동화를 하였다
위 사진을 보면 간단하게 웹 서버 httpd을 구축하였을때 나타나는 화면이다

보통 ansible을 이용하지 않고 linux 명령어를 사용하여 구축도 가능하지만 이전 글과 같이 만약 100대 1000대의 서버를 구성해야한다면?? 말이 달라진다

앞으로 설명할 wordpress 같이 구축하는데 많은 코드를 사용해야 한다면 더더욱 ansible이 절실히 필요한 순간이 오지 않을까 생각을한다

처음 ansible을 접한다면 ad-hoc 을 먼저 짜보고 yml 파일을 만들어 보는것을 추천한다 물론 나 또한 그렇게 접근을 하여 더욱 쉽게 접근을 하였다

ansible -i inven.lst test -m yum -a "name=httpd state=latest"
ansible -i inven.lst test -m service -a "name=httpd state=started"
ansible -i inven.lst test -m shell -a "firewall-cmd --add-port=80/tcp"
ansible -i inven.lst test -m firewalld -a "port=80/tcp state=enalbed"
ansible -i inven.lst test -m copy -a "src=index.html dest=/var/www/html/index.html"

이와 같이 ad-hoc을 작성하여서 만든 코드들이다 이 코드들을 yml파일 양식에 맞게 작성을 하면

---
- name: apache web server
  hosts: web1
  tasks:
  - name: install apache
    yum:
      name: httpd
      state: latest
  - name: service
    service:
      name: httpd
      state: started
  - name: firewall open
    firewalld:
      port: 80/tcp
      state: enabled
  - name: copy index file to html directory
    copy:
      src: index.html
      dest: /var/www/html/index.html

이렇게 변신하는 것을 볼 수 있다

  1. 먼저 yml 파일을 시작할 때에는 ---name hosts tasks 가 필수적으로 들어가야한다

  2. 들여쓰기를 할때는 2칸을 기준으로 들여쓰기를 진행한다

  3. name은 최대한 내가 무슨 작업을 하는지 자세하게 쓰는 것이 좋다

  4. hosts 는 내가 적용할 서버를 말한다 나는 web1이라고 적었는데 이것은 위에 구축한 사진과 같이 172.16.0.102 를 가리킨다

  5. 사용하는 모듈에 맞게 yum service firewalld copy 와 같이 들어쓰기와 ansible module 공식 홈페이지에 보면 어떻게 사용해야 하는지 필수적으로 들어가야하는 값은 무엇인지 확인이 가능하다

  6. yml 파일을 작성하고 실행을 시키기 위해선 ansible-playbook 명령어를 사용한다

  7. -i 옵션을 주어 inven.lst 파일에 들어가있는 인벤토리에 지정된 IP에서 작업을 실시한다

작동을 시키고 난후에는 노란색으로 changed라고 표시가 된다

172.16.0.102 접속을 했을때 내가 만든 index.html 파일과 동일하게 화면이 뜨는 것을 볼 수 있다.

profile
매일 발전하는 Cloud Engineer

0개의 댓글