시스템관리를 어떻게하면 자동화하고 중앙집중적으로 하면서 편리하게 할 수 있을까요?

문태준의 이미지

이와 관련된 주제를 모아보았습니다.
http://tunelinux.pe.kr/wikix/index.php?display=SystemAutomation

시스템관리를 어떻게하면 자동화하고 중앙집중적으로 하면서 편리하게 할 수 있을까요?

저도 그렇지만 돌아다녀보면 정말 너무 단순반복적으로 작업을 하는 경우가 많습니다. 그래서 요즘에 시간여유가 좀 있어서 이에 대해서 고민을 하고 있는데 다른 분들의 사례도 들어보고 싶습니다. 전 주로 레드햇 계열을 썼으므로 먼저 적어보겠습니다.

참고사례
http://www.johnborwick.com/writing/system-automation.html

ㅇ OS 설치
- PXE 기능을 이용하여 원격으로 부팅 (pxe를 지원한다면 별도의 cd-rom이나 플로피 등 다른 매체가 필요없다) 여기서 dhcp, tftp 서버 세팅이 되어 있어야함
- 원격부팅후 설치는 kickstart 파일을 이용하여 자동화를 한다. kickstart 파일에는 단지 설치하는 과정만 넣는 것이 아니라 시스템세팅과 관련한 기본적인 내용도 추가할 수있다. 사용자추가, 인터넷에서 파일다운로드 받아 설치하기, 타임서버 세팅, 관리자이메일변경, ssh root 로그인 막기 등등
- kickstart 파일을 좀더 머리 굴려 이용하면 활용할 수 있는 것이 많이 있습니다.
--> 여기서 좀더 나아가면 새로운 신규서버추가나 제거시 템플릿등을 만들어놓아서 자동으로 pxe boot 조정, dns 조정, ip 할당등을 할 수 있을 것입니다.

ㅇ 시스템세팅 및 운영
- cfengine 을 이용하여 중앙집중적으로 설정파일을 관리하고 배포한다. 또한 각 서버의 점검 및 보안점검도 이를 통하여 할 수 있다. cfengine은 요즘 제가 계속 테스팅하고 있는 프로그램이며 기회가 되면 한번 꼭 써보라고 추천하고 싶습니다. ssh를 이용하여 push/pull 방식으로 자동화를 할 수도 있지만 (제가 기존에 써왔던 방식) 이것보더 더 나은 관리방식을 제공합니다.
- cfengine을 이용하든 스크립트를 짜든 해당 서버의 그룹분류를 하여 사용(메일,웹 등)
- 시스템의 공통설정파일은 cvs를 이용하여 버전관리를 한다.
- 많이 사용하는 프로그램은 rpm 등을 이용하여 만들어서 사용한다. 아니면 cfengine을 이용하여 자동설치 및 업데이트 프로그램을 짤 수도 있다. 예를 들어 웹상에서 oracle client 연동이 필요할 경우 언제 이걸 모두 설치하고 있을 것인가? 물론 binary를 이용하여 백업받고 설치할 수도 있지만 rpm 이나 스크립트에 user, group 등도 자동으로 설정하도록 하면 편리할 것이다.

ㅇ 계정중앙관리
- LDAP/NIS 등을 이용하여 서버별로 계정을 운영하지 않고 중앙집중 관리함. /etc/hosts 등의 파일등도 관리가능하나 이는 생각해볼 여지가 있을듯.
- 개발자나 내부접속 사용자의 홈디렉토리는 nfs, autofs 를 이용하여 필요한 경우에만 마운트하도록 함

kilhan의 이미지

저도 비슷한 고민이 많이 됩니다.
그러나 아직 까지 저는 주먹구구식이고
문태준님께서 훨씬 저보다 경험이 많은것으로 보입니다.

설치)
Tftp 와 DHCP를 이용한 네트워크 설치를 합니다.
네트워크 설치후 kickstart 를 이용하려 하고 있으나
버전이 계속 갱신됨에 따라 조금은 귀찮은듯 하여
이용하지 못하고 있습니다.

패키지 운영)
DiskLess 와 Disk가 있는 서버로 구성하여
Diskless 서버들의 경우 메인 OS 서버에서 업데이트를 쉽게합니다.
DISK가 있는 경우 전용 NFS 업데이트 서버를 마련하여 업데이트 합니다.

설정파일)
설정파일의 경우 SSH를 이용한 scp 정도 밖에 이용하지 못하고 있습니다.

NMS)
NMS의 경우 mrtg를 주로 사용하며
윈도우단의 모니터링 프로그램을 이용하여 PC에 alert가 발생하도록 합니다.

RedHat의 경우)

https//rhn.redhat.com/rhn/help/reference/rhn400/ko/index.jsp

의 URL을 보시면 알겠지만
RedHat에서 패키지 관리와 모니터링을 할수 있는 서버와 패키지를 제공하는듯하여 연구중입니다.
(다만 가격정책이나 라이센스 정책을 몰라서..)

RedHat RHN에 등록하여 사용하는 방법말고
satelite 서버를 이용하여 패키지및 모니터링이 된다고
문서에는 설명되어 있으나 아직 자세히 살펴보지는 않았습니다.

(이 기회에 RedHat관련 잘 아시는 분이 있다면 설명해주시면 감사 ^^)

문태준의 이미지

kilhan wrote:

저도 비슷한 고민이 많이 됩니다.
그러나 아직 까지 저는 주먹구구식이고
문태준님께서 훨씬 저보다 경험이 많은것으로 보입니다.

설치)
Tftp 와 DHCP를 이용한 네트워크 설치를 합니다.
네트워크 설치후 kickstart 를 이용하려 하고 있으나
버전이 계속 갱신됨에 따라 조금은 귀찮은듯 하여
이용하지 못하고 있습니다.

말씀하신것으로 봐서는 레드햇 계열을 쓰고 계신듯한데요. 가급적 버전을 동일하게 하면 좋지만 운영하다면 그렇지 않겠지요? 그래도 kickstart 파일은 설정하기 어렵지 않으므로 큰 문제는 되지 않은듯한데 귀찮아도 바뀌는것을 중앙서버에 반영해놓아야 이후 더 편해질듯 합니다.

kilhan wrote:

패키지 운영)
DiskLess 와 Disk가 있는 서버로 구성하여
Diskless 서버들의 경우 메인 OS 서버에서 업데이트를 쉽게합니다.
DISK가 있는 경우 전용 NFS 업데이트 서버를 마련하여 업데이트 합니다.

이말을 들어보니 레드햇의 rhn은 사용하지 않는가보네요. 레드햇의 rhn을 이용하는 경우에는 각 개별서버차원말고도 그룹핑하여 자동으로 업데이트등도 가능합니다. 굳이 쉘등으로 프로그램 짜지 않아도요. 근데 이건 상용배포판 구입한 경우이고 클러스터같은 경우야 그냥 공개배포판 써도 무방하겠지요. 이경우야 각 배포판마다 자동업데이트할 툴이 있으니 그걸 쓰면 되겠네요.

kilhan wrote:

설정파일)
설정파일의 경우 SSH를 이용한 scp 정도 밖에 이용하지 못하고 있습니다.

보통 이런 방법을 쓰는데 설치시부터 cfengine을 자동설치하도록 해놓고 사용하면 여러가지 응용분야가 넓어집니다. 설정파일의 경우도 cvs 등에 넣어두면 좋겠지요.

kilhan wrote:

NMS)
NMS의 경우 mrtg를 주로 사용하며
윈도우단의 모니터링 프로그램을 이용하여 PC에 alert가 발생하도록 합니다.

mrtg는 자원현황에 대해서 계속 보는 프로그램이죠. 윈도우단은 아마도 왓츠업같은 프로그램 말하나보지요? snmp를 이용한다면 cacti라는 프로그램이 dbms와 연동이 되는데요 한번 사용해볼만할듯. mrtg는 일일이 수동으로 파일을 생성하고 불편한 점이 있습니다.

모니터링툴은 nagios를 썼는데 불편한 점은 있지만 기능에서만은 훌륭합니다. dbms와 연동이 되지 않으니 설정파일을 텍스트로 관리하는게 불편한데요.

kilhan wrote:

RedHat의 경우)

https://rhn.redhat.com/rhn/help/reference/rhn400/ko/index.jsp

의 URL을 보시면 알겠지만
RedHat에서 패키지 관리와 모니터링을 할수 있는 서버와 패키지를 제공하는듯하여 연구중입니다.
(다만 가격정책이나 라이센스 정책을 몰라서..)

RedHat RHN에 등록하여 사용하는 방법말고
satelite 서버를 이용하여 패키지및 모니터링이 된다고
문서에는 설명되어 있으나 아직 자세히 살펴보지는 않았습니다.

(이 기회에 RedHat관련 잘 아시는 분이 있다면 설명해주시면 감사 ^^)

레드햇에서 여러가지 관리용 프로그램을 제공합니다. 기본 구매시에는 rhn을 이용하여 개별서버당 자동업데이트를 할 수 있습니다. 여기에 추가로 요즘엔 모니터링하는 기능도 들어가있더군요. 써보지는 않았는데 다른 툴을 사용할 수 있으니 그리 큰 필요성은 못 느꼈습니다. 그러지만 레드햇이 rhn을 이용하여 추후 시스템관리와 관련된 서비스 시장도 노리고 있지 않을까 생각이 됩니다.

그런데 기본은 rhn에 등록하는 것인데 rhn서버를 레드햇것을 쓰지 않고 아예 로컬에 구현할 수도 있습니다. 이게 satelite 서버인데 비용이 꽤 되어서 억단위인가 된듯?? 이건 정확히 모르겠네요. pxe로 원격설치하고 설정파일을 보관하고 있다가 특정시점으로 롤백하고 자신만의 rpm을 추가 등록하여 사용하는 등 여러가지 기능이 있을건데 국내에선 아직 도입한 사례가 없는듯?? 이건 시스템이 몇천대이상된다면 필요할 수 있을듯 합니다.
제가 최근까지 레드햇관련된 기술지원을 해서 이정도는 알지만 실제 구현한 국내사례가 없으니. 그동안 사례가 생겼으려나?

---------------------------
문태준
http://groups.google.co.kr/group/sysadminstudy 시스템어드민 공부모임
http://tunelinux.pe.kr
http://database.sarang.net

kilhan의 이미지

문태준님의 친절한 답변에 감사드립니다.^^

RedHat 계열을 사용하고 있습니다만 정식적인 RHEL이 아니고
CentOS 를 사용합니다.
RHEL의 경우 가격이 상당하여 부담이 좀 생기더군요.
따라서 RHN의 업데이트 서비스를 받을수가 없습니다.

그리고 자주사용하는 데몬들의 경우 패치를 하기 때문에
RedHat에서 제공하는 업데이트를 사용할수 있는것이 많지 않습니다.

패키지 관리
최초 - Redhat RPM 사용
패치 - 각 서버마다 컴파일
과도기 - RPM 작성후 설치 (단점 RPM 생성의 귀찮음)
현재 - 패키지 서버 NFS 마운트후에 make install

그리고 satelite 서버의 가격에 대해서는 좀 뜻밖이구
국내에 구축된 사례가 없다는 점으로 인해서
도입여부를 신중히 생각해 봐야 할것 같습니다.

저는 satelite 서버도 GPL 라이센스라
RHEL clone 들도 동일한것이 있거나
소스컴파일해서 쓸수 있을것이라 생각했거든요
(RedHat에서 GPL 아닌 프로그램도 개발하나 보군요^^;)

서버들을 관리하기 위하여
외부망에 패키지나 외부아이디와 비번을 이용하는것은
서버관리자들에게는 부담스럽다고 생각합니다.
따라서 서버관리는 반드시 로컬에서 모든것이
이루어져야 한다고 주장하거든요.

어찌되었건 친절한 정보에 감사드립니다^^

PS.
kickstart 쉬운가요? 꽤 시간이 필요할듯 해서 엄두도 못내고 있는데요

다즐링의 이미지

같은 서버군끼리는 diskless나.. ( 어차피 거의 io가 없거나.. 네트워크 io )

혹은 설치스크립트를 kickstart에.. 넣어두면 별문제는 없고..

문제는 업데이트와 설정문제인데..

역시 ssh + 손 -_-; 으로 수동 스크립트질로 현재는 해결중입니다.

업데이트가 별로 없는관계로..

그나마 rhel4 라이센스가 있어서.. 업데이트는 무리 없군요.

rpm 은 현재 작성중이구요.

문태준씨께서 적으신 방법외에는 딱히 생각나는것이 없군요.

taejun wrote:
ㅇ OS 설치
- PXE 기능을 이용하여 원격으로 부팅 (pxe를 지원한다면 별도의 cd-rom이나 플로피 등 다른 매체가 필요없다) 여기서 dhcp, tftp 서버 세팅이 되어 있어야함
- 원격부팅후 설치는 kickstart 파일을 이용하여 자동화를 한다. kickstart 파일에는 단지 설치하는 과정만 넣는 것이 아니라 시스템세팅과 관련한 기본적인 내용도 추가할 수있다. 사용자추가, 인터넷에서 파일다운로드 받아 설치하기, 타임서버 세팅, 관리자이메일변경, ssh root 로그인 막기 등등
- kickstart 파일을 좀더 머리 굴려 이용하면 활용할 수 있는 것이 많이 있습니다.
--> 여기서 좀더 나아가면 새로운 신규서버추가나 제거시 템플릿등을 만들어놓아서 자동으로 pxe boot 조정, dns 조정, ip 할당등을 할 수 있을 것입니다.

ㅇ 시스템세팅 및 운영
- cfengine 을 이용하여 중앙집중적으로 설정파일을 관리하고 배포한다. 또한 각 서버의 점검 및 보안점검도 이를 통하여 할 수 있다. cfengine은 요즘 제가 계속 테스팅하고 있는 프로그램이며 기회가 되면 한번 꼭 써보라고 추천하고 싶습니다. ssh를 이용하여 push/pull 방식으로 자동화를 할 수도 있지만 (제가 기존에 써왔던 방식) 이것보더 더 나은 관리방식을 제공합니다.
- cfengine을 이용하든 스크립트를 짜든 해당 서버의 그룹분류를 하여 사용(메일,웹 등)
- 시스템의 공통설정파일은 cvs를 이용하여 버전관리를 한다.
- 많이 사용하는 프로그램은 rpm 등을 이용하여 만들어서 사용한다. 아니면 cfengine을 이용하여 자동설치 및 업데이트 프로그램을 짤 수도 있다. 예를 들어 웹상에서 oracle client 연동이 필요할 경우 언제 이걸 모두 설치하고 있을 것인가? 물론 binary를 이용하여 백업받고 설치할 수도 있지만 rpm 이나 스크립트에 user, group 등도 자동으로 설정하도록 하면 편리할 것이다.

ㅇ 계정중앙관리
- LDAP/NIS 등을 이용하여 서버별로 계정을 운영하지 않고 중앙집중 관리함. /etc/hosts 등의 파일등도 관리가능하나 이는 생각해볼 여지가 있을듯.
- 개발자나 내부접속 사용자의 홈디렉토리는 nfs, autofs 를 이용하여 필요한 경우에만 마운트하도록 함

------------------------------------------------------------------------------------------------
Life is in 다즐링

^_^의 이미지

kickstart 아주 쉽습니다.

diskless도 한 30분만에 뚝딱 구현해ㅤㅂㅘㅅ습니다.

웹서비스라면 diskless로 구현해도 별 문제 없어 보입니다.

대부분 포탈들이 래드햇 쓰는 경우 pxe와 kickstart로 설치를 하죠

kickstart안에 여러 스크립트를 넣어서

서비스까지 되게 하죠 ^^

다 비슷 비슷하죠

Apache Php Mysql이라면

대부분 Php쪽 업그레이드만 고민하시면 될듯 ^^

cfengine 공부해볼까 합니다.

해본다 해본다 햇는데 전혀 하지 못햇는데

거기에 다시 snmp도 공부하고 있답니다. ^^

참고로 넷스케이프 디렉토리 서버가

래드햇에서 인수 하면서 페도라 디렉토리 서버라는 공개 LDAP 서버도 내놓았답니다.

----------------------------------------------------------------------
웃는 얼굴 헤죽 헤죽

코퍼스의 이미지

저는 서버관리를 업무로 하지는 않습니다만.. 업무 자동화에는 관심이 많습니다.
음.. 결국 좋은 솔루션의 도입
이나 업무 프로세스(쉽게 얘기해서 자신의 업무를 체계화하는것)
외에는 결국 스크립트(넓은 의미에서 윈도우 NT 경우에는 VB 등을 이용하는것 까지 포함)를 이용한 자동화 솔루션을 구축해야 하지 않을까 싶은데요..

외국의 뛰어난 시스템 관리자들은 스크립트 프로그래밍 능력이 경이로울 정도이던데..
(뭐, 그렇다고 외국의 모든 시스템 관리자가 그렇다는 것은 아니고..이역시 일부이겠지만..)

펄은 특히 시스템관리 자동화에 많이쓰이고.. 관련 서적이나 사이트도 많은 것으로 알고 있습니다만..

A few Good Man

dra700의 이미지

역시 중앙집중식 관리라 하면 ssh를 빼먹으면 서운하죠.
다 아시는 팁이겠지만 ssh의 public키를 .ssh에 athorized_keys로 넣어주고 private키를 가진 마스터 서버에서의 자동 로그인을 통해 대부분의 서버들을 마스터서버에서 컨트롤 합니다.(물론 보안적인 측면에서 보자면 마스터가 뚫리면 끝장이죠 :evil: )

그 외에도 KLDP에 언급된 적이 있는 ncftp의 ncftpget, ncftpput, ncftpspooler, ncftpbatch 등을 이용하시면 ftp 자동화에 큰 도움이 될듯 합니다.

문태준의 이미지

다른 글에도 썼던 책입니다.
전에 봤다가 요즘 다시 열심히 보고 있는 책입니다.
책은 사지 않아도 출판사사이트에서 스크립트를 모두 받을 수 있습니다. (그렇지만 책이 있어야 도움이 되겠지만)

지금 여기서 논의하거나 고민하는 부분에 대해 대부분 담고 있는 책입니다. ssh나 ncftp 등 개별프로그램을 포함하여 좀더 서로 가진 노하우를 공유하자는 것입니다.

그런데 앞글에서도 이야기를 했듯이 기존에 보통 ssh 를 이용하는 방식을 많이 썼을 것인데 이외에도 여러가지 방식을 함께 응용할 수 있지요.

[출처] http://apress.com/book/bookDisplay.html?bID=211

시스템관리업무를 자동화하기 위한 여러가지 방법에 대해 설명하고 있습니다. OS설치, 세팅, 여러대 시스템간에 데이타 공유, 패치 등 여러가지 업무에 대한 생각을 참고할 수 있습니다.

Automating UNIX and Linux Administration

출판사 : apress

목차 : http://apress.com/ApressCorporate/supplement/1/211/1590592123-1367.pdf

About the Author xi
About the Technical Reviewers xiii
Acknowledgments xv
Preface xvii
Chapter 1 Introducing the Basics of Automation 1(14)
1.1 Do I Need Automation? 2(2)
1.2 What Will I Gain? 4(1)
1.3 What Do Sysadmins Do? 5(1)
1.4 Providing a User Interface 6(1)
1.5 Methodology: Get It Right from the Start! 7(3)
1.6 Dealing with Users and Administrators 10(5)
Chapter 2 Using SSH to Securely Automate System Administration 15(20)
2.1 The Basics o f Using SSH 15(1)
2.2 Enhancing Security with SSH 16(2)
2.3 Using RSA Authentication 18(3)
2.4 Using the ssh-agent 21(4)
2.5 Restricting RSA Authentication 25(3)
2.6 Using SSH for Common Accounts 28(7)
Chapter 3 Creating Login Scripts and Shell Scripts 35(22)
3.1 Tailoring the Command Prompt 35(6)
3.2 Using Tab Completion 41(3)
3.3 Creating Command Aliases 44(5)
3.4 Creating Commands That Affect Multiple Systems 49(4)
3.5 Distributing Your Login Scripts 53(4)
Chapter 4 Pre-Installation: Network Preparation and Management 57(30)
4.1 Deciding Between Static and Dynamic IPs 57(1)
4.2 Creating and Using Modular Shell Scripts 58(1)
4.3 Using Locking to Prevent Conflicts 59(2)
4.4 Base Pre-Installation Script 61(3)
4.5 The Pre-Installation Component Scripts 64(11)
4.6 What About Errors? 75(1)
4.7 Removing Machines 76(8)
4.8 Generating Reports 84(3)
Chapter 5 Automating and Customizing Installation 87(18)
5.1 Automating Installations 87(1)
5.2 Customizing Your Operating System 88(3)
5.3 Preparing for Automated Administration 91(14)
Chapter 6 Automatic System Configuration 105(44)
6.1 What Do I Configure? 106(2)
6.2 Configuration Principles to Follow 108(1)
6.3 Creating a Custom Configuration Approach 109(15)
6.4 Configuring Systems with GNU cfengine 124(25)
Chapter 7 Sharing Data Between Systems 149(62)
7.1 Types of Data 150(4)
7.2 Using Network Filesystems 154(5)
7.3 Automounting Network Filesystems 159(5)
7.4 Sharing System Data with NIS/NIS+ 164(7)
7.5 Using the Lightweight Directory Access Protocol (LDAP) 171(1)
7.6 Security with Kerberos 171(1)
7.7 Sharing Data with c f engine 172(7)
7.8 Synchronizing Data with rsync 179(7)
7.9 Managing and Distributing Data with CVS 186(13)
7.10 Transferring Data wi th HTTP/FTP 199(11)
7.11 RPM 210(1)
Chapter 8 Packages and Patches 211(74)
8.1 Packages vs. Patches 212(1)
8.2 What Should I Use? 213(1)
8.3 How to Begin 214(1)
8.4 Updating Systems with Patches 215(22)
8.5 Understanding and Installing Packages 237(28)
8.6 Automatic Package Installations with AutoRPM 265(15)
8.7 Cross-Platform Packaging with OpenPKG 280(5)
Chapter 9 System Maintenance and Changes 285(38)
9.1 Synchronizing Time 287(2)
9.2 Managing Accounts 289(24)
9.3 Maintaining Log Files 313(5)
9.4 Removing Files 318(5)
Chapter 10 System Monitoring 323(46)
10.1 General System Monitoring 324(11)
10.2 Monitoring System Logs 335(11)
10.3 Monitoring Network Services 346(23)
Chapter 11 Improving System Security 369(24)
11.1 System Security with GNU cfengine 370(7)
11.2 Configuring System-Level Firewalls 377(5)
11.3 Watching Files with Tripwire 382(11)
Chapter 12 Backing Up and Restoring Data 393(20)
12.1 Determining Your Backup Policies 394(2)
12.2 Backing Up Data with cfengine 396(2)
12.3 Using rsync to Back Up Data 398(3)
12.4 Backing Up Data with rdiff-backup 401(6)
12.5 Performing Tape Backups with tar 407(4)
12.6 The Amanda Backup Suite 411(2)
Chapter 13 User Inter aces 413(54)
13.1 Web-Based Administration with Webmin 414(1)
13.2 Creating the Underlying Working Scripts 415(3)
13.3 Executing Commands as root 418(4)
13.4 Designing and Using Common Data Files 422(5)
13.5 Text-Based Interface 427(8)
13.6 Creating a Web-Based Interface 435(32)
Appendix A Introduction to Basic Tools 467(22)
A.1 The bash Shell 467(4)
A.2 Perl 471(5)
A.3 Basic Regular Expressions 476(3)
A.4 grep 479(3)
A.5 The sed Stream Editor 482(7)
Appendix B Customizing and Automating Red Hat Linux Installation 489(18)
B.1 Customizing Red Hat Linux 490(12)
B.2 Automating Red Hat Linux Installation with Kickstart 502(5)
Appendix C Building Red Hat Package Manager (RPM) Packages 507(42)
C.1 Creating an RPM Build Environment 509(1)
C.2 Building Your First RPM 510(10)
C.3 Using an RPM Build Root 520(3)
C.4 Patching the Original Source 523(1)
C.5 RPM Dependencies 524(2)
C.6 More Advanced RPM Concepts 526(19)
C.7 Automating Package Builds 545(4)
Index 549

---------------------------
문태준
http://groups.google.co.kr/group/sysadminstudy 시스템어드민 공부모임
http://tunelinux.pe.kr
http://database.sarang.net

문태준의 이미지

위에서 다른 분이 말씀한대로 kickstart 생각보다 어렵지 않습니다. 일단 설치된 anaconda 파일을 살펴보면 이해가 가고 GUI로 생성해주는 툴이 있습니다.

satelite 서버를 직접 써보지 않았는데 내부적으로 rhn 기능을 구현하는 것이지요. 그리고 전 보안상 문제가 없다면 꼭 서버관리가 로컬에서만 이루어져야 할 일은 없다고 생각합니다.

넷스케이프 디렉토리 서버인수했는데 사용해봐야 알겠지만 기존에도 openldap 서버가 있고 상용프로그램은 gui나 관리차원에서 더 편하고 쉬운 툴이 있겠지요. 저도 텍스트 모드를 선호하지만 때론 GUI 프로그램을 통하여 편리하고 처음에 쉽게 접근할 수도 있습니다. 디렉토리서버를 도입해 인증을 하더라도 사이트마다 필요한것은 스크립트를 짜서 관리해야 할 것입니다.

ssh로 자동화할 수 있는 스크립트를 짤 수 있지만 cfengine은 이러한 것을 고민하면서 만들어진 것입니다.

---------------------------
문태준
http://groups.google.co.kr/group/sysadminstudy 시스템어드민 공부모임
http://tunelinux.pe.kr
http://database.sarang.net

amop의 이미지

초보입니다..

레드햇 같은 경우

태준님 말씀처럼 버젼이 다른 서버가 여러개 있을텐데

그런 경우 한꺼번에 패키지관리나 업데이트를 할 수 없잖아요?

이런 경우 일일히 수작업을 하시는지, 아님 다른 방법이 있는지..

그리고 리눅서 서버에 있어서 회사차원에서

딱히 레드햇을 많이 쓰는 이유가 있나요?
(대중화의 영향이라던지, 후에 인수인계를 위함이라던지.. 등)

문태준의 이미지

amop wrote:
초보입니다..

레드햇 같은 경우

태준님 말씀처럼 버젼이 다른 서버가 여러개 있을텐데

그런 경우 한꺼번에 패키지관리나 업데이트를 할 수 없잖아요?

이런 경우 일일히 수작업을 하시는지, 아님 다른 방법이 있는지..

그리고 리눅서 서버에 있어서 회사차원에서

딱히 레드햇을 많이 쓰는 이유가 있나요?
(대중화의 영향이라던지, 후에 인수인계를 위함이라던지.. 등)

자동업데이트는 어떤 배포판이든지 가능한데요?
지금 말하는건 레드햇 RHEL말하는거지요? 그전 7.x 등이야 공식적인 지원이 중단된 것이구요. 레드햇은 rhn이라는 사이트를 제공해서 웹상에서 업데이트등도 가능하고 아니면 명령행으로도 가능하고요. 보통 직접 서비스하는 프로그램이나 커널(재부팅필요)만 빼고는 문제만 없다면 자동으로 업데이트되도록 걸어두는데요.

당연히 Cent OS 등 srpm을 이용할 경우에야 완전 자동화하기는 힘들게죠.

레드햇을 많이 쓰는 이유는 말그대로 대중화의 영향이겠죠. 상용배포판으로는 레드햇의 RHEL과 SUSE인데 기능상의 차이야 어차피 크게 차이가 없지만 레드햇은 패키지 관리 프로그램이 기본 내장되어있는 반면 수세쪽은 기본 제공되는 패키지 관리 프로그램이 자동화하기 불편합니다. 또 전세계적인 판매량을 보면 레드햇이 많고 또 국내에서 기술지원받기는 레드햇이 아직은 더 나은 편입니다. 국제적인 지원체계등.

그런데 그런 질문을 하시면 원래 토론주제와 빗겨나는거같은데요.

왜 상용배포판을 쓰냐고 물으시면 그건 몇가지 이야기거리가 있지요. 전 리눅스하는 분들이 나름대로 애정이 많은것은 이해를 하지만 스스로 리눅스는 무료이고 저렴하게 써야한다는 압박감을 가진듯합니다. 그래서 알아서 공개배포판을 가지고 지원도 받지 못하면서 알아서 씁니다. 물론 이게 문제가 없으면 그렇게 나가면 되지만 문제가 생겼을 경우는 관리하는 사람이 다 뒤집어쓸 수 밖에 없지요.

중요한건 리눅스를 쓴다 윈도를 쓴다가 아니라 현재 운영하는 있는 전산시스템이 회사에서 얼마나 큰 위치를 차지하고 있고 여기에 얼마나 많은 인력과 시간, 자금을 투입해야 하느냐를 가지고 판단해야지요. 비용도 초기구매비용뿐만 아니라 이후 유지보수 및 관리비용도 판단을 해야하는 것이구요.

저는 엔지니어가 미리 판단해서 리눅스는 저렴하니깐 공짜로 쓸 수 있으니깐 쓴다고 미리 경영자로서 판단하는것은 이제 좀 하지 않았으면 좋겠습니다. 물론 위에서 말을 한대로 큰 틀에서 어떤 사업을 하기 위해 전산시스템이 필요하고 이것이 얼마나 큰 가치를 가지고 있느냐를 가지고 판단할 수는 있겠죠.

제가 만약 직접 사업을 하거나 아뭏든 전체를 책임지고 있고 스스로 관리할 역량이 된다면 공개배포판을 쓸겁니다. 페도라는 테스팅 성격이 강하고 언제 패키지 업데이트가 중단될지 모르기에 데비안 또는 FreeBSD 계열을 사용할 것입니다.
그러나 그게 아니라 제가 시스템관리쪽만 담당하는거라면 전 상용배포판을 사용할 것입니다. 여기서의 판단기준은 기술지원이라는 것입니다. 상용배포판의 판단기준은 또 하나가 있는데 이는 rhel의 경우도 기본 업데이트 기간이 7년정도 된다는 것입니다. 물론 1년마다 서비스를 구매하는 형태로 되지만 7년정도는 계속 업데이트를 보장한다는 것입니다. 어떤 배포판으로 다 깔아놓았는데 패치가 중단이 된다면?? 아우 끔찍합니다.

---------------------------
문태준
http://groups.google.co.kr/group/sysadminstudy 시스템어드민 공부모임
http://tunelinux.pe.kr
http://database.sarang.net

문태준의 이미지

제가 이글을 쓰고나서 사람들이랑 모임 만들어서 공부를 했었지요. 요즘들어서 몇가지를 정리하여 위키에 올렸습니다.

http://wiki.kldp.org/wiki.php/AutoInstallation
pxe 와 kickstart 이용하여 OS 자동설치하기

http://wiki.kldp.org/wiki.php/YumUsage yum을 이용하여 보안업데이트를 자동화하는 내용. yum 사용시 주의사항, 자체 저장소 마련하기 등 (문태준)

http://wiki.kldp.org/wiki.php/Cfengine
(문태준) cfengine 에 대해 설치 및 세팅 내용임

http://wiki.kldp.org/wiki.php/LDAP-tip
(문태준) OpenLDAP 을 이용하여 계정 통합하기(autofs, nfs 이용), TLS 암호화 통신, 각 호스트별 접속 제한, 주소록 메일클라이언트 연동하기

설치는 pxe를 쓰든말든 상관없이 kickstart를 이용하고 자체적으로 사용하는 패키지는 yum 레파지토리를 별도 구축하여 사용합니다. 그러면 통합적으로 관리가 되겠지요. 모든 세팅은 cfengine을 이용하여 중앙에서 직접 제어합니다. cfengine 정리작업을 진행중인데 cfengine에 자체 레파지토리 쓰는것도 추가하여 초기설치후 cfengine만 세팅하면 모든 세팅이 자동으로 되도록 구성할 수 있습니다. LDAP은 OS 사용자 인증을 연동하는데 제가 만든것에서 ACL은 추가가 되어야하고 쉽게 사용할 수 있는 GUI 프로그램이 필요할 것입니다.

---------------------------
문태준
http://tunelinux.pe.kr
http://database.sarang.net

---------------------------
문태준
http://groups.google.co.kr/group/sysadminstudy 시스템어드민 공부모임
http://tunelinux.pe.kr
http://database.sarang.net