728x90
반응형
SMALL
TODO - 전체 minion 에 timezone 을 설정하고, webserver 역할인 minion 에만 nginx 를 구성한다
- master - minion 구성
- VM 환경이나 클라우드에 구성한다
- Vagrant / Terraform - [master] environment 확인
- state file, pillar file base directory 확인 (/etc/salt/master)
- - [minion] custom grain 으로 webserver role 할당
- minion config 파일 수정 (/etc/salt/minion)
master: saltmaster
grains:
roles:
- webserver
4. [master] state 파일 작성
4.1 ) timezone (/srv/salt/timezone/init.sls)
{%- set timezone = salt.pillar.get('timezone:name', 'Asia/Seoul') %}
{%- set utc = salt.pillar.get('timezone:utc' , True) %}
timezone_setting:
timezone.system:
- name: {{ timezone }}
- utc: {{ utc }}
timezone_packages:
pkg.installed:
- name: tzdata
timezone_symlink:
file.symlink:
- name: /etc/localtime
- target: /usr/share/zoneinfo/{{ timezone }}
- force: true
- require:
- pkg: tzdata
4.2 ) nginx (/srv/salt/nginx/init.sls)
# Name: nginx.sls
# Description: Installs nginx
nginx:
# Installs the nginx package
pkg:
- installed
# Copy nginx conf to minion
file.managed:
- name: /etc/nginx/nginx.conf
- source: salt://nginx/nginx.conf
- user: vagrant
- group: root
- mode: 640
# Checks the nginx service is running and watches the nginx.conf file
service.running:
- watch:
- pkg: nginx
- file: /etc/nginx/nginx.conf
5. [master] HighState 명세 (/srv/salt/top.sls)
base:
'*':
- timezone
'G@roles:webserver':
- nginx
6. [master] 배포
salt '*' state.highstate
7. [minion] 확인
- timezone : 전체 미니언에 적용
slave1, slave2 모두 적용
- nginx : webserver Role 이었던 slave1 에만 적용
728x90
반응형
LIST
'DevOps > Infra' 카테고리의 다른 글
(IaC) SaltStack 개념 (0) | 2023.03.01 |
---|---|
(Grafana) Dashboard json 으로 변환하기 (0) | 2022.02.07 |
(Prometheus) Windows Agent 모니터링 - prometheus.yml 작성 (0) | 2022.01.27 |
(Prometheus) Agent 노드 구성하기 #1. windows_exporter 설치 (0) | 2022.01.25 |
(Grafana) y 축 max 값 설정하기, y axis soft max (0) | 2022.01.24 |