· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Slack Howto

Slack Howto


Version: 1.0

작성자: 이돈현(환골탈태) [http]http://blog.easysw.net


1. Slack 개요

1.1. Slack 이란

  • 게으른 관리자를 위해 디자인 된 시스템
  • 2006년 호주 유닉스 유저 그룹 (AUUG) 컨퍼런스에서 Google은 Slack을 수정하여 서버 클러스터를 관리한다고 공개적으로 발표

1.2. Slack 구조

slack-02.jpg
[JPG image (34.97 KB)]


1.3. Slack 특징

  • CUI 소프트웨어 배포 시스템
  • 중앙집중화 된 설정 저장소 활용
  • 선택 된 시스템에 설정 전개 가능
  • Sub Role 기능 제공
  • slack master로 부터 설정 동기화 방법
    • slack role.sub-role
    • cron을 사용하여 주기적으로 실행
  • Rsync over SSH : SSH 인증키를 사전에 배포
  • SSH 계정에 따라 rsyncd.conf 위치 차이
    • root : /etc/rsyncd.conf
    • 일반계정 : ~/rsyncd.conf
  • files는 sub role에 따라 적용되지만, scripts는 인수로 넘겨준 role 이름별로 동작함

1.4. Slack subrole 기능

  • 부모 롤 뒤에 .을 추가하여 생성
    • .../roles/myrole/files
    • .../roles/myrole/files.foo
    • .../roles/myrole/files.foo.bar
  • 파일 추가는 가능하지만 삭제는 안됨
  • 동일한 이름의 부모 파일을 완전히 대체함
  • 오직 하나의 부모 롤만 상속 함 (다중상속 X)
  • 존재하지 않는 sub role은 부모롤을 상속 함

1.5. Slack 용도

  • 다수의 설정 파일을 하나로 취합
  • 패키지 설치 및 업그레이드
  • 각종 설정 배포
  • 데몬 구동 및 정지
  • 기타 원하는 추가 작업 실행

2. Slack Install & Configuration

2.1. Slack Master install

wget http://slack.googlecode.com/files/slack-0.15.2.tar.gz
tar xfzp slack-0.15.2.tar.gz
cd slack-0.15.2
make
make install

ls /etc/slack.conf

2.2. Slack Master rsyncd.conf

cat > /etc/rsyncd.conf <<END
 [slack]
 path = /data/slack
 comment; = slack test
 uid = 1000
 gid = 1000
 read only = true
 # 일반계정은 ~/rsyncd.conf 생성, 하단 주석해제
 # use chroot = false
END
[ -f /etc/rsyncd.conf ] && chown root:root /etc/rsyncd.conf 
[ -f /etc/rsyncd.conf ] && chmod 600 /etc/rsyncd.conf

2.3. Slack Master slack.conf

ROLE_LIST=etc/roles.conf       # 기본 롤 정의
SOURCE=slack-master::slack   # master 주소::rsync 모듈명
CACHE=/var/cache/slack
STAGE=/var/lib/slack/stage
ROOT=/
BACKUP_DIR=/var/lib/slack/backups

2.4. Slack Master roles.conf

# /data/slack/etc/roles.conf
# 적용 할 호스트 명 :   기본 적용 role name
web1.sfo.example.com:   webserver
web2.sfo.example.com:   webserver
web1.hyd.example.com:  webserver.hyd
web1.hyd.example.com:  webserver.hyd

2.5. Slack Master 디렉토리 구조

/data/slack/roles/
	|-- etc
	|   `-- roles.conf
	`-- roles
	    `-- download
	       |-- files.configsync 
	       |   |-- etc
	       |   |   `-- sysctl.conf
	       |   |-- root
	       |   |   |-- dot.bashrc
	       |   |   `-- dot.vimrc
               |-- files.install
               `-- scripts
                   |-- functions
                   |-- postinstall
                   `-- preinstall

2.6. Slack Slave 설정

  • /etc/hosts
61.110.xxx.xxx slack-master

  • Slack Install
wget http://slack.googlecode.com/files/slack-0.15.2.tar.gz
tar xfzp slack-0.15.2.tar.gz
cd slack-0.15.2
make
make install

  • test
slack download.configsync download.daemonrestart

2.7. Slack 실행순서


# 해당 role의 file, scripts를 로컬로 동기화
    slack: installing roles: download.configsync
    slack: sync download.configsync
    slack: stage files download.configsync
    slack: stage scripts download.configsync
# scripts에서 preinstall, fixfiles 실행
    slack: preinstall download.configsync
    slack: fixfiles download.configsync
# 백업 디렉토리 생성
# files 적용
    slack: install download.configsync
# scripts에서 postinstall 실행
    slack: postinstall download.configsync

2.8. Slack 서비스 적용

slack-03.jpg
[JPG image (57.53 KB)]


3. Slack 시연

3.1. 시연내용

  1. Slack Master 설정
  2. Slack Slave 설정
  3. 설정 저장소에 서비스 설정 변경
  4. cssh, dist 사용하여 설정배포
  5. roles.conf 사용하여 설정 배포

4. Being Happy

  1. 반복적인 설치 및 설정 작업에서 탈출
  2. 대규모 작업 및 복잡한 작업시 장애감소
  3. 예측 불가능한 트래픽 폭주에 대처
  4. 네트워크 이동, OS 재설치, 서비스 용도 변경등의 업무 간소화
  5. 즐거운 주말 보내기…^^


ID
Password
Join
You will soon meet a person who will play an important role in your life.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2010-01-03 19:17:58
Processing time 0.0091 sec