---
- name: web server installation
hosts: all
become: yes
gather_facts: yes
vars:
dversion: "{{ 'centos' if ansible_distribution == 'CentOS'
else 'ubuntu' if ansible_distribution == 'Ubuntu'
else 'centos' }}"
tasks:
- name: webserver install
include_tasks: "{{ dversion }}.yaml"
websrv.yaml
---
- name: httpd install
yum:
name: httpd
state: present
- name: httpd start
service:
name: httpd
state: started
enabled: true
- name: firewalld stop
service:
name: firewalld
state: stopped
enabled: false
centos.yaml
---
- name: nginx install
apt:
name: nginx
state: present
- name: start nginx
service:
name: nginx
state: started
enable: true
- name: stop ufw
ufw:
state: disabled
ubuntu.yaml
---
정상적으로 nginx 정보를 가지고 온다.
---
docker 설치
server에 compose가 설치되지 않았음으로 명령어로 설치해주어야 한다.
나는 그냥 귀찮아서 명령어로 이걸 뿌려주었다
systemctl stop firewalld
ansible all -m shell -a "docker swarm join --token SWMTKN-1-2rsxrgzprjpryicxvc4vcja9q0sp41w2fwf01amsjy7f4u52a9-8iib9ecs8nk28mea8dice3892 192.168.121.23:2377" --become
단 주의할점은 이걸 할때 서버 방화벽이 내려가 있어야만 토큰을 통해 join 되는 노드들을 받아줄 수 있다.
그 다음 나를 통과해서 패킷을 통과해야 하기 때문에 일시적으로 ip_forward를 올려주자
```
vi /proc/sys/net/ipv4/ip_forward
```
패킷 포워딩 활성화를 위해서는
/etc/sysctl.conf 에 있는 내용을 바꾸어야 한다.
```
sudo vi /etc/sysctl.conf
```
이제 배포를 해보자
````
sudo docker service create --name myhttpd --replicas 4 -p 8888:80 --constraint 'node.role == workder' httpd
```
성공한 모습을 볼 수 있다.
---
AWX(Ansible Works)
ansible works -> 오픈 소스
ansible tower -> 관리버전
ansible works를 위해서는 위와같은 패키지들이 필요한데 모두 컨테이너로 제공한다. 그래서 도커만 설치되어 있다면 사용이 가능해진다.
ansible + docker + docker-compose + python + ansible works
가 깔려 있기 때문에 ubuntu에서 해야 한다.
그럼 지금 상황을 생각해보면
ansible이 있고 centos기반 kvm이 있다. 이 ansible을 가지고 centos 자체를 관리할 것이다. 나중에 ansible이 깔린 서버 주소만 받으면 전체가 관리 가능해진다.
그래서 관리하는 섭버에서 real, vm 들을 나누고 개발자로부터 playbook을 받아서 전체에 httpd를 뿌려주면 되는 것이다.
---
개인 프로젝트
'Development(Web, Server, Cloud) > 22) LINUX - Cloud' 카테고리의 다른 글
클라우드 75일차 (0) | 2022.05.16 |
---|---|
클라우드 74일차(정리중, gitlab) (0) | 2022.05.10 |
클라우드 72일차 (0) | 2022.05.09 |
클라우드 71일차 (0) | 2022.05.09 |
클라우드 70일차(kvm,vagrant, ansible) (1) | 2022.05.03 |