Skip to content
/ Zinst Public

DevOps management tool for distributed linux systems.(such as the yinst of Yahoo!, Ansible)

License

Notifications You must be signed in to change notification settings

ralfyang/Zinst

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

  • ! This repository Supports for Redhat or CentOS 6.x version under Join the chat at https://gitter.im/goody80/Ralf_Dev

  • You just can run the zinst reopsitory server by docker container as below

docker run -d  -v /data/dist:/data/dist:rw -p 80:80/tcp zinst/zinst_repository

RecordIt If you want to show detail video please click the GIF image :)

http://ralfyang.com

Zinst ๋ฉ”๋‰ด์–ผ

๊ฐœ์š”

RecordIt

  • zinst๋Š” ๋ถ„์‚ฐ๋œ ์„œ๋ฒ„๊ตฐ์˜ ํšจ์œจ์ ์ธ ๊ด€๋ฆฌ์™€ ์ œ์–ด๋ฅผ ์œ„ํ•ด ๊ฐœ๋ฐœ ๋˜์—ˆ์œผ๋ฉฐ, ์ด๋ฅผ ์œ„ํ•ด ๋ณ„๋„์˜ agent์˜ ์„ค์น˜๋ฅผ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด ํŠน์ • ๋ฆฌ๋ˆ…์Šค ์žฅ๋น„ ํ•˜๋‚˜๋ฅผ ๊ด€๋ฆฌ์šฉ๋„์˜ ๋ฉ”๋‹ˆ์ € ์„œ๋ฒ„๋กœ ๊ตฌ์„ฑ ํ•œ ๋‹ค์Œ, ํ•ด๋‹น ์„œ๋ฒ„์—์„œ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ssh๋ฅผ ํ†ตํ•ด ์ ‘์†์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด, ํ•œ๋ฒˆ์˜ ๋ช…๋ น์–ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋ณต์ˆ˜๊ฐœ์˜ ์„œ๋ฒ„๋ฅผ ๊ด€๋ฆฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์˜ˆ) 192.168.1.101 ์„œ๋ฒ„๋ถ€ํ„ฐ 192.168.1.199 ๊นŒ์ง€ ํ•˜๋“œ์›จ์–ด ์ŠคํŽ™์„ ํ™•์ธํ•˜๋Š” command
$ zinst ssh '/data/bin/hwconfig -c' -h 192.168.1.1[01-99]
  • Zinst๋Š” ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ ์šด์˜์— ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ, ์ž‘์—…์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ์ž‘ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์˜ˆ) Load-balancer์— ํ•ด๋‹น ์„œ๋ฒ„๋ฅผ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•ด Virtual IP๋ฅผ loopback์œผ๋กœ ๋“ฑ๋กํ•˜๋Š” ์ž‘์—…
$ zinst set vipctl.vips=192.168.2.10 -set vipctl.name=DEFAULT
$ zinst start vipctl

$ ifconfig lo:DEFAULT
lo:DEFAULT Link encap:Local Loopback  
          inet addr:192.168.2.10  Mask:255.255.255.255
          UP LOOPBACK RUNNING  MTU:65536  Metric:1

$ zinst stop vipctl
$ ifconfig lo:DEFAULT
lo:DEFAULT Link encap:Local Loopback  
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
  • ์œ„ ์˜ˆ์ œ์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ์ง์ ‘ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๋งŽ์€ ๊ณผ์ •์„ ๊ฑฐ์น˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํ•ด๋‹น ์„ค์ • ๋‚ด์—ญ์— ๊ด€๋ จํ•˜์—ฌ ๋™์ ์œผ๋กœ ๊ด€๋ฆฌ๊ฐ€ ํž˜๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์œ„ ๋‚ด์šฉ๊ณผ ๊ฐ™์ด ํ•ด๋‹น ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์— ๊ตฌ์„ฑ๋˜์–ด์žˆ๋Š” zinst set ๊ฐ’์€ ์•„๋ž˜์™€ ๊ฐ™์ด ํ™•์ธ์ด ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค.
$ zinst set
vipctl.name=DEFAULT
vipctl.onboot=yes
vipctl.DIR=/data/src/html
vipctl.Check_file=l4-check.html
hwconfig.nameserver1=8.8.8.8
hwconfig.nameserver2=168.126.63.1
vipctl.vips=192.168.2.10
server_default_setting.name1=8.8.8.8
server_default_setting.name2=211.44.62.40
.
.
.
  • ๋™์ผ VIP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค์ˆ˜์˜ ์‹œ์Šคํ…œ(192.168.2.101~192.168.2.110)์˜ loopback์„ ๋™์‹œ์— ๊ด€๋ฆฌ ํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์ด ํ™œ์šฉ์ด ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค.
$ zinst set vipctl.vips=192.168.2.10 -h 192.168.1.1[01-10]
$ zinst start vipctl -h 192.168.1.1[01-10]
  • ์ด์ฒ˜๋Ÿผ, zinst๋Š” ํŠน์ • ๋ฆฌ๋ˆ…์Šค ์žฅ๋น„์˜ ๊ฐœ๋ณ„ ๊ด€๋ฆฌ์—์„œ ๋ถ€ํ„ฐ ๋ณต์ˆ˜๊ฐœ ์ด์ƒ์˜ ์„œ๋ฒ„๊ตฐ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.
  • ip๋ฒ”์œ„ ๋˜๋Š” host๋ช…์˜ ๋ฒ”์œ„(์˜ˆ web101.test.com ~ web110.test.com)๋ฅผ ์ •๊ทœํ‘œํ˜„์‹ ํ˜•ํƒœ๋กœ ์ž…๋ ฅ๋ฐ›์•„ ์ˆ˜๋งŽ์€ ์„œ๋ฒ„ ์žฅ๋น„๋ฅผ ๊ด€๋ฆฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‹ค์–‘ํ•œ ์„œ๋ฒ„๊ตฐ์— ๋Œ€ํ•ด file์˜ ๋ณต์‚ฌ, Daemon์˜ stop/start/restart ๋“ฑ์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Crontab์˜ ํ™•์ธ/์ˆ˜์ •, ํŠน์ • ์ž‘์—…์„ ์œ„ํ•ด ์ œ์ž‘ํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํŒจํ‚ค์ง€ํ™” ํ•˜์—ฌ ์„ค์น˜/์ œ๊ฑฐ/์„ค์ •๋ณ€๊ฒฝ ๋“ฑ์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ผ๋ จ์˜ ๋ชจ๋“  ์ž‘์—…์€ history์— ๊ธฐ๋ก์ด ๋˜์–ด ์ž‘์—… tracking์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • zinst๋Š” Puppet์ด๋‚˜ chef ์ฒ˜๋Ÿผ ์‹œ์Šคํ…œ Orchestration์„ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์œผ๋‚˜, ๋ณต์žกํ•œ ์„ค์น˜๋“ฑ์ด ๋™๋ฐ˜๋˜์ง€ ์•Š์Œ์œผ๋กœ, yum, rpm, puppet,chef, docker ๋“ฑ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‰ฝ๊ฒŒ ๋งํ•ด์„œ ์‚ฌ๋žŒ์ด ํ•˜๋Š” ์ผ๋ จ์˜ ์ž‘์—…์„ Zinst package๋ผ๋Š” ํ˜•ํƒœ๋กœ wrappingํ•˜์—ฌ ์ฒ˜๋ฆฌํ•œ๋‹ค๊ณ  ์ดํ•ด ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • Enterprise system์˜ ์šด์˜์„ ์œ„ํ•ด์„œ๋Š”, ์‹ฌํ”Œํ•œ ๊ตฌ์„ฑ์˜ Infrastructure, ๊ฐ ์š”์†Œ์— ๋Œ€ํ•œ ์ž์ฒด ๊ฒ€์ฆ, ์ •๊ทœํ™”๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœํ•œ ์‹œ์Šคํ…œ๊ตฌ์ถ•์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ ํ–‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด์— ๋”ฐ๋ผ, ์ž์ฒด ๊ฒ€์ฆ ๋ฐ ์ตœ์ ํ™”๋œ application์„ package ํ˜•ํƒœ๋กœ ์ œ์ž‘ํ•˜์—ฌ ๋‚ด์ œํ™” ํ•˜๊ณ , ์ค‘์•™์—์„œ ์ „์ฒด ์‹œ์Šคํ…œ์„ ์ด๊ด„ํ•˜์—ฌ ๊ด€๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๊ด€๋ฆฌ ํ˜•ํƒœ๋ฅผ ์ผ์›ํ™” ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • Zinst Package ๊ตฌ์„ฑ์—๋Š” set๊ฐ’์„ ๋ณ„๋„๋กœ ํ• ๋‹น ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰ ํ•˜๋‚˜์˜ package๋กœ ๋‹ค์–‘ํ•œ ๊ตฌ์„ฑ์˜ ์ ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, Apache๋ฅผ ์„ค์น˜ ์‹œ, httpd_server package๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์„ค์น˜์™€ ๋™์‹œ์— set๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์—ฌ ๊ตฌ์„ฑ์„ ๋‹ฌ๋ฆฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst i httpd_server \
-set httpd_server.DocumentRoot=/data/src/html \
-set httpd_server.hostname=www.ralfyang.com \
-set httpd_server.port=8080

์‹œ์ž‘ํ•˜๊ธฐ

Download & install

  • zinst๋Š” ๋‘๊ฐ€์ง€ ํ˜•ํƒœ๋กœ ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ์‰ฌ์šด ๊ตฌ์„ฑ ์„ค์น˜๋ฅผ ์œ„ํ•ด github.io๋ฅผ repositoryํ™” ํ•˜์—ฌ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
curl -sL bit.ly/online-install | sh
  • ์œ„์™€ ๊ฐ™์ด ์„ค์น˜ ์ง„ํ–‰ ์‹œ, sudo package๊ฐ€ ํ•„์š”ํ•˜์—ฌ yum์„ ํ†ตํ•ด ์ž๋™ ์„ค์น˜ ์ง„ํ–‰ ๋ฉ๋‹ˆ๋‹ค.

  • RedHat๊ณ„์—ด์˜ OS์˜ ๊ฒฝ์šฐ, yum์„ ํ†ตํ•œ sudo ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‚˜, Ubuntu ๋˜๋Š” Darwin์˜ ๊ฒฝ์šฐ๋Š” ๊ทธ์— ๋งž๊ฒŒ ์„ค์น˜ command๋ฅผ ์ˆ˜์ • ํ•˜์—ฌ ์ง„ํ–‰ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ฐธ๊ณ ๋กœ, zinst ์ž์ฒด๋Š” bash๊ฐ€ ์„ค์น˜ ๋œ ๋ชจ๋“  Linux, Unix ๋“ฑ์—์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‚˜, ์ž‘์—…์„ ์œ„ํ•œ ์ผ๋ถ€ ๋ช…๋ น์–ด(curl, bc, awk, sed, echo, printf, tar)๋Š” OS ๋ฐ ํ•ด๋‹น ๋ช…๋ น์–ด์˜ Version์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์ถœ๋ ฅ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • github.io๋ฅผ ํ†ตํ•ด ์„ค์น˜ ๊ฐ€๋Šฅํ•œ package๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹Œ, ์ž์ฒด์ ์ธ Package repository๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ ์ž ํ•  ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด github์˜ source๋ฅผ cloneํ•˜์—ฌ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ git clone https://github.com/goody80/Ralf_Dev.git
$ cd Ralf_Dev/1_zinst_starters_package/
$ install.sh
  • ์ž์ฒด repository๋ฅผ ๊ตฌ์ถ• ์‹œ, Apache web server๊ฐ€ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.

zinst help

  • zinst๋Š” ๋ณ„๋„์˜ man-page๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” zinst ๋ช…๋ น์–ด์˜ ํ™•์‚ฐ์„ฑ์„ ์œ„ํ•œ ์‚ฌ์ƒ์—์„œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  • A๋ผ๋Š” ์„œ๋ฒ„์— zinst ๋ช…๋ น์„ ํ†ตํ•ด B๋ผ๋Š” ์„œ๋ฒ„๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ ์‹œ, zinst file์€ ์ž๋™์œผ๋กœ B ์„œ๋ฒ„์— ๋ณต์ œ๊ฐ€ ๋˜์–ด ์—…๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ๋ถˆํ•„์š”ํ•œ, file ๋ฐ config๋Š” ๋ณ„๋„๋กœ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ , ์˜ค์ง zinst ํŒŒ์ผ ํ•˜๋‚˜์— ๋ชจ๋“ ๊ฒƒ์„ ๋‹ด์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋Š”, ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์˜ ํŽธ์˜๋ฅผ ์œ„ํ•ด command ํ˜•ํƒœ๋กœ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
  • ๋ฐ˜๋ณต์ ์ธ ๋ช…๋ น์–ด ์ž‘์—… ๋“ฑ์„ packageํ™” ํ•˜์—ฌ ์„ค์น˜ ์‹คํ–‰ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ, default ์ž‘์—… ํ™˜๊ฒฝ๋“ฑ์˜ ์…‹ํŒ…์„ ์œ„ํ•ด server_default_setting์ด๋ผ๋Š” package๋ฅผ ์„ค์น˜ํ•˜์—ฌ, ์‹œ์Šคํ…œ ์ดˆ๊ธฐ ๊ตฌ์„ฑ์„ ์ง„ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst i server_default_setting -stable

RecordIt

  • zinst๋Š” man-page ๋Œ€์‹ , ์ž์ฒด manual์„ command๋ฅผ ํ†ตํ•ด ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst

------------------------------------------------------------------------------------------------------ 
	zinst	[Command]	[Option Types]		[Target Names]	[-h or -H]	[Targe Host] 
------------------------------------------------------------------------------------------------------ 
		 ssh		[Command]						*Host requires	  
...................................................................................................... 
		 mcp		[local-files]		[Destination DIR]		*Host requires 
		 keydeploy								*Host requires 
------------------------------------------------------------------------------------------------------ 
		 install				[Package]   
				[-same]			[Package]	  
				[-downgrade]		[Package]	  
				[-stable]		[Package without version]	  
		 remove					[Package]	  
				[-force]		[Package]	  
...................................................................................................... 
		 list					[Blank for list-up] or [Package]  
				[-file]			[Package] or [/DIR/File-name]	  
				[-zicf]			[Package]	  
				[-dep]			[Package]	  
...................................................................................................... 
		 sync		[-file]			[Save fie for the Package set sync]	  
		 		[-url]			[Save fie from URL for the Package set sync]	  
		 restore	[-file]			[Saved file_name]	  
				[-igor]			* Not available yet 
------------------------------------------------------------------------------------------------------ 
		 set					[Blank for list-up]			  
		 [Package]	-set 			[Package.option=value]  
------------------------------------------------------------------------------------------------------ 
		 start/stop/restart/run			[Daemon_name]	  
		 on/off					[Daemon_name]	  
...................................................................................................... 
		 crontab	[-e] or [-l]					  
------------------------------------------------------------------------------------------------------ 
		 find		[Blank for list-up] or [Package]	 
		 getset		[Package with version exactly]			 
------------------------------------------------------------------------------------------------------ 
		 track		[Blank for list-up]			 
				[Package or hostname]		 
				[Package or hostname]	[-file] 	 
				[Package or hostname]	[-file=Export_File_name]	 
				"user" or "sudo_user"	 
				[User_Package_name]	[-file] 	 
				[User_Package_name]	[-file=Export_File_name]	 
------------------------------------------------------------------------------------------------------ 
		 history	[Number of Range] 
...................................................................................................... 
		 -pass		Option for Multi-host password automation
		 self-config	ip=x.x.x.x host=xxx.xxx.xxx dir=xxx
		 self-update			 
		 -version			 
		 *, help		 
------------------------------------------------------------------------------------------------------ 
 -h is target host, -H is targe file of hostlist 
 ex) zinst i sample_a sample_b -stable -set sample_a.key=111 -H ./server_list.txt 
 ex) zinst i sample-1.0.0.zinst -h web01.news.kr[1,3] web[03-12].news[1,3] 
------------------------------------------------------------------------------------------------------
 * Current zinst setup: [ Repo: http://goody80.github.io/Zinst_packages - goody80.github.io/Zinst_packages ], [ ROOT-DIR: /data ]
------------------------------------------------------------------------------------------------------ 
  • ์ข€ ๋” ์ƒ์„ธํ•œ ์„ค๋ช…์„ ์œ„ํ•ด์„œ๋Š” -help option์„ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst -help

------------------------------------------------------------------------------------------------------ 
	zinst	[Command]	[Option Types]		[Target Names]	[-h or -H]	[Targe Host] 
------------------------------------------------------------------------------------------------------ 
 + For remote work 
 
  - Remote control: You can send a command to seperated hosts 
		 ssh		[Command]						*Host requires	  
...................................................................................................... 
 
  - File copy to remote: You can send a file(s) to seperated hosts(mcp = Multi CoPier) 
		 mcp		[local-files]		[Destination DIR]		*Host requires 
  - ssh-key copy to remote: You can send a ssh-key file to seperated hosts 
		 keydeploy								*Host requires  
------------------------------------------------------------------------------------------------------ 
 + For Package 
 
  - Package manage: You can install/remove a package as under the command 
		 install				[Package]   
				[-same]			[Package]	  
				[-downgrade]		[Package]	  
				[-stable]		[Package without version for latest package]	  
		 remove					[Package]	  
				[-force]		[Package]	  
...................................................................................................... 
 
  - Package view: You can see an installed packages/files/index & dependency 
		 list					[Blank for list-up]	  
				[-files]		[Package]	  
				[-files]		[/Dir/File-name]	  
				[-zicf]			[Package]	  
				[-dep]			[Package]	  
...................................................................................................... 
 
  - Package sync: You can try a sync the package set by a save file	ex) ~/z/save/zinst-* 
		 sync		[-file]			[Save fie for the Package set sync]	  
		 		[-url]			[Save fie from URL for the Package set sync]	  
  - Package restore: You can restore the package set by a save file for restore	ex) ~/z/save/zinst-* 
		 restore	[-file]			[Saved file_name]	  
				[-igor]			* Not available yet 
 
------------------------------------------------------------------------------------------------------ 
 + For Configuration 
 
  - Configuration: Zinst can helps to configure the setup without manual modify the Conf-file 
		 set					[Blank for list-up]			  
							[Package.option=value]			  
 
  - Configuration with Install: Configure the setup with the package install 
		 [Package]	-set 			[Package.option=value]  
 
------------------------------------------------------------------------------------------------------ 
 + For System manage 
 
  - Daemon control: You can control the daemon from the /etc/init.d/ directory 
		 start/stop/restart			[Daemon_name]	  
		 on/off					[Daemon_name]	  
...................................................................................................... 
 
  - Crontab manage: You can touch the cron schduler by zinst 
		 crontab	[-e]						  
				[-l] 
 
------------------------------------------------------------------------------------------------------ 
 + For install available package find 
 
  - Package find 
		 find		[Blank for list-up]			 
				[Package]		 
 
------------------------------------------------------------------------------------------------------ 
 + For tracking the released package 
 
  - Track the package 
		 track		[Blank for list-up]			 
				[Package or hostname]		 
				[Package or hostname]	[-file] 	 
				[Package or hostname]	[-file=Export_File_name]	 
				"user" or "sudo_user"	 
				[User_Package_name]	[-file] 	 
				[User_Package_name]	[-file=Export_File_name]	 
------------------------------------------------------------------------------------------------------ 
 + View history 
 
		 history	[Number of Range] 
...................................................................................................... 
 
		 -pass					 Option for Multi-host password automation
		 self-update			 
		 self-config	ip=x.x.x.x host=xxx.xxx.xxx			 
		 -version			 
 
		 *, help		 
------------------------------------------------------------------------------------------------------ 
 -h is target host, -H is targe file of hostlist 
 ex) zinst i sample-1.0.0.zinst -h web01.news.kr[1,3]  web[03-12].news[1,3] 
 ex) zinst i sample-1.0.0.zinst -H ./server_list.txt 
------------------------------------------------------------------------------------------------------ 
 
 
 
Example)
zinst ssh 'cat /etc/hosts;pwd' -h web[01-09].test.com	: Send a command to seperated hosts 
 
zinst mcp ./test.* /data/var/ -h web[01-09].test.com 	: File copy to seperated hosts 
 
zinst install hwconfig -stable			: for package apply as a latest version automatically 
 
zinst install hwconfig-1.0.2.zinst -same		: for overwrite the package as a same version 
zinst i hwconfig-1.0.2.zinst -downgrade			: for downgrade the package as a lower version 
 
zinst list -files hwconfig				: list-up file of the hwconfig package 
zinst ls -files /data/bin/hwconfig			: find a package as a file 
zinst list -zicf hwconfig				: see the index file of package 
zinst ls -dep hwconfig 					: package dependency check 
 
zinst set						: list-up of zinst current setups 
zinst set hwconfig.nameserver1=1.1.1.1			: change the setup nameserver1=1.1.1.1 to the hwconfig 
 
zinst i hwconfig-1.0.2.zinst -set hwconfig.nameserver1=1.1.1.1 -set hwconfig.nameserver2=2.2.2.2 
 : change the setup nameserver1=1.1.1.1 and nameserver2=2.2.2.2 to the hwconfig with package install 
 
zinst restart httpd					: restart the httpd daemon by /etc/init.d/httpd file control 
 
zinst crontab -l 					: list-up the crontab scheduler 
zinst crontab -u root -l			: list-up the crontab scheduler for an user 
zinst cront -e	 					: edit the crontab scheduler 
 
zinst find						: list-up the available file for install 
zinst find hwcon					: list-up the available file for install as you typed 
 
zinst hist						: show the history 
zinst hist 300						: show the 300 lines history 
 
zinst self-update					: zinst command update( *Requires: Package dist server must has a zinst file) 
zinst  self-config ip=x.x.x.x host=xxx.xxx.xxx	: you can change the configuration what you want
 
zinst help						: Detail view the help 
 
=== For more detail: https://github.com/goody80/Ralf_Dev ===
 

๋ช…๋ น์–ด ์ž…๋ ฅ ๋ฐฉ์‹(DSL: Domain Specific Language)

  • zinst์˜ DSL์€ ํŽธ๋ฆฌ ๋ฐ ์ง๊ด€์„ฑ์„ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ์ž…๋ ฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ๋“ค์–ด install ๋˜๋Š” inst ๋˜๋Š” i ๋“ฑ์œผ๋กœ ์ž…๋ ฅ ํ•˜๋”๋ผ๋„ install ์ด๋ผ๋Š” ๋ช…๋ น์œผ๋กœ ์ธ์‹ํ•˜๊ฒŒ ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค
  • install: install, inst, i
  • remove: remove, rm
  • list: list, ls
  • history: history, hist
  • crontab: crontab, cront

self-config

  • Default ๊ตฌ์„ฑ์œผ๋กœ zinst repository๋Š” github.io์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์„œ๋น„์Šค ์šด์˜์„ ์œ„ํ•ด ์ž์ฒด Package๋ฅผ ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ์ž์ฒด repository๋ฅผ ๊ตฌ์ถ• ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋•Œ, repository์˜ ๋ณ€๊ฒฝ์„ ์œ„ํ•ด self-config๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
$ zinst self-conf host=package.dist.test.com ip=192.168.10.1

์›๊ฒฉ ์‹œ์Šคํ…œ๊ตฐ ๊ด€๋ฆฌํ•˜๊ธฐ

ssh with zinst

  • ์•ž์„œ ๊ฐœ์š”์—์„œ ์„ค๋ช…ํ•œ๊ฒƒ๊ณผ ๊ฐ™์ด zinst๋Š” ๋ณต์ˆ˜๊ฐœ ์ด์ƒ์˜ ๋Œ€๋Ÿ‰์˜ ์„œ๋ฒ„๊ตฐ์— ํŠน์ • ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ชฉ์ ์— ์ฃผ์•ˆ์ ์„ ๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ, ํ•œ์ค„์˜ ๋ช…๋ น์œผ๋กœ ๋ณต์ˆ˜๊ฐœ ์ด์ƒ์˜ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์— ๋ช…๋ น์„ ์ „๋‹ฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
$ zinst ssh 'rm -f /data/tmp/*.log' -h 192.168.1.1[01-99] -H web_hosts.list

scp with zinst

  • ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด ํ•œ์ค„์„ ํ†ตํ•ด ์›๊ฒฉ์ง€์— ์žˆ๋Š” ์„œ๋ฒ„๊ตฐ์— ๋กœ์ปฌ ์„œ๋ฒ„์— ์žˆ๋Š” ํŒŒ์ผ์„ ๋ฟŒ๋ฆด ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst mcp ./test/* /data/src/test/ -h 192.168.1.1[01-99]

์œ„ ์˜ˆ์ œ์—์„œ ํ™•์ธ๋˜๋Š” -h option์„ ํ†ตํ•ด ๋Œ€์ƒ host๋ฅผ ์ •๊ทœํ‘œํ˜„์‹ ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•˜์—ฌ ์ ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, -H option์„ ํ†ตํ•ด ์ด๋ฏธ ๊ตฌ์„ฑ๋œ host list๋ฅผ ์ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ cat ./web_hosts.list
192.168.3.1
192.168.3.2
192.168.3.3
192.168.3.4
192.168.3.[6-10]
192.168.[4,6].[1,2][0-9]

ํŒจํ‚ค์ง€ ์„ค์น˜ ๋ฐ ๊ด€๋ฆฌํ•˜๊ธฐ

find

  • ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•œ package ๋‚ด์—ญ์€ ์•„๋ž˜์™€ ๊ฐ™์ด fine command๋ฅผ ํ†ตํ•ด ํ•ด๋‹น repository์˜ ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ต๋‹ˆ๋‹ค.
$ zinst find
MariaDB_client-5.5.33.zinst
MariaDB_server-5.5.33.zinst
asciinema-1.1.1.zinst
bzr_64-2.1.1.zinst
centos_heartbeat_el5-1.0.1.zinst
centos_mond_el5-1.0.0.zinst
cloudera_flume_conf_zum-1.0.0.zinst
cloudera_flume_master-0.9.4+25.40-1.zinst
cloudera_flume_node-0.9.4+25.40-1.zinst
.
.
.
  • ํŠน์ • package์— ๋Œ€ํ•œ ๊ฒ€์ƒ‰์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
$ zinst find mysql
ralfyang_mysql_backup-1.0.2.zinst
mysql_check_realtime_select-1.0.0.zinst
mysql_check_slow_query-1.0.0.zinst
mysql_client_55-1.0.2.zinst
mysql_rpmserver_conf-0.0.1.zinst
mysql_server-5.5.10.7.zinst
mysql_server_test_tool-0.1.0.zinst

install

RecordIt

  • zinst find๋ฅผ ํ†ตํ•ด ์„ค์น˜๊ฐ€๋Šฅํ•œ package๊ฐ€ ํ™•์ธ๋˜๋ฉด ํ•ด๋‹น package๋ฅผ install ๋ช…๋ น์„ ํ†ตํ•ด ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
$ zinst i hwconfig-1.3.3.zinst
  • ๋ฒ„์ ผ ๋ช…์‹œ ์—†์ด, ์ตœ์‹  pacakge๋กœ ์„ค์น˜๋ฅผ ์›ํ•  ์‹œ, -stable option์„ ํ†ตํ•ด ๋ฒ„์ ผ๋ช… ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
$ zinst i hwconfig -stable
  • ํ•œ๋ฒˆ์— ์—ฌ๋Ÿฌ package๋ฅผ ์„ค์น˜ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ƒํ˜ธ ์˜์กด์„ฑ์ด ์žˆ๋Š” package์— ๋Œ€ํ•ด์„œ๋Š” ์ •๋ ฌ ์ˆœ์„œ๋ฅผ ์ง€์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋•Œ, -stable option์„ ํ†ตํ•ด ์ž๋™ ์ •๋ ฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst i sudo_user_test002-0.0.1.zinst user_test002-0.0.1.zinst -stable
  • ์œ„์™€ ๊ฐ™์€ ์กฐํ•ฉ์œผ๋กœ ๋Œ€๋Ÿ‰์˜ ์„œ๋ฒ„๊ตฐ์— ์„ค์น˜๋ฅผ ์ง„ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst i sudo_user_test002-0.0.1.zinst user_test002-0.0.1.zinst -stable -H web_hosts.list

list

  • ์„ค์น˜ ๋‚ด์—ญ์— ๋Œ€ํ•œ ํ™•์ธ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
$ zisnt ls

2015-08-19 19:48:55  -   asciinema-1.1.1
2015-09-03 11:40:05  -   docker_engine-1.7.1
2015-07-20 22:24:15  -   git_tool-1.0.1
2015-06-10 15:56:37  -   gs_nmap-0.0.1
2015-07-28 15:40:32  -   gs_nodejs-0.0.1
  • ์œ„์™€ ๊ฐ™์ด ์„ค์น˜๋œ package๋ช…๊ณผ ๋ฒ„์ ผ, ์„ค์น˜ ์ผ์ž๋“ฑ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„ค์น˜๋œ package์ˆ˜๊ฐ€ ๋งŽ์•„์„œ ํŠน์ • package๋งŒ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ํŠน์ • package๋ช…์„ ์ถ”๊ฐ€ ํ•ด ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
$ zinst ls vipctl

2015-09-15 15:54:45  -   vipctl-1.0.5
  • ํ•ด๋‹น Package์˜ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst ls -files vipctl

/data/bin/vipctl
/data/src/html/.status
/data/var/status
/data/conf/vipctl.conf
  • ์œ„์™€ ๋ฐ˜๋Œ€๋กœ ํŠน์ • file์ด ์–ด๋–ค Package์— ์˜ํ•ด์„œ ์„ค์น˜ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ์ด ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ํ•ด๋‹น file์˜ ๋””๋ ‰ํ† ๋ฆฌ๋ช…์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.(์ƒ๋Œ€๊ฒฝ๋กœ ๊ฐ€๋Šฅ)
$ zinst ls -files /data/bin/vipctl

vipctl-1.0.5  <-------   /data/bin/vipctl
  • ํ•ด๋‹น Package์˜ ๊ตฌ์„ฑ์„ ์œ„ํ•œ ์ธ๋ฑ์Šค ํŒŒ์ผ(zicf: Zinst Index Configuration File)์˜ ๋‚ด์—ญ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst ls -zicf vipctl

## Package information
PACKAGENAME = vipctl
VERSION = 1.0.5
AUTHORIZED = ralf.yang@ralfyang.com
DESCRIPTION = 'Create the loopback and network startup for the vip grouping - update for status page'
CUSTODIAN = ralfyang-eit-team

#Global setting of the files
OWNER = root
GROUP = wheel
PERM = 775


### Regular Syntax
### Based root Directory = /data/
.
.
.
  • ํ•ด๋‹น Package์˜ ์˜์กด์„ฑ Check๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst ls -dep server_default_setting

server_default_setting - package has a dependency with ( ralfyang_account_policy )

remove

  • ์„ค์น˜๋œ Package์˜ ์ œ๊ฑฐ๋ฅผ ์œ„ํ•ด remove๋ฅผ ์‚ฌ์šฉ ํ•ฉ๋‹ˆ๋‹ค.
$ zinst remove vipctl

removed `/data/bin/vipctl'
removed `/data/src/html/.status'
removed `/data/var/status'
removed `/data/conf/vipctl.conf'
removed `/data/zinst/vipctl'
removed `/data/vault/Source/vipctl-1.0.5/bin/vipctl'
removed `/data/vault/Source/vipctl-1.0.5/bin/vipctl.conf'
removed directory: `/data/vault/Source/vipctl-1.0.5/bin'
removed `/data/vault/Source/vipctl-1.0.5/status'
removed `/data/vault/Source/vipctl-1.0.5/vipctl.zicf'
removed `/data/vault/Source/vipctl-1.0.5/.file.list'
removed directory: `/data/vault/Source/vipctl-1.0.5'
########## vipctl-1.0.5 package has been removed ######## 
  • ์˜์กด์„ฑ์ด ๊ฑธ๋ฆฐ Pacakge๋ฅผ ์‚ญ์ œ ์‹œ๋„ ํ•  ๊ฒฝ์šฐ, ํ•ด๋‹น Package๋ฅผ ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ๋Š” pacakge๋ฅผ ๋จผ์ € ์‚ญ์ œ ํ•ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ -force option์„ ํ†ตํ•ด ์˜์กด์„ฑ์— ๋Œ€ํ•œ ๋ฌธ์ œ๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ๊ฐ•์ œ๋กœ ์‚ญ์ œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์œ„์™€ ๊ฐ™์€ ๋ถ€๋ถ„์€ ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„์ด๋‚˜, ๋•Œ์— ๋”ฐ๋ผ ํ•„์š” ํ•  ๊ฒฝ์šฐ ์ œํ•œ์ ์œผ๋กœ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒจํ‚ค์ง€ ์ œ์ž‘ํ•˜๊ธฐ

zicf(Zinst index configuration file)์˜ ์ดํ•ด

  • RPM ์ œ์ž‘์— ์‚ฌ์šฉ๋˜๋Š” .spec ํŒŒ์ผ ์ฒ˜๋Ÿผ, zinst package๋„ file ๋ฐ configuration, command, cron scheduler๋ฅผ ์œ„ํ•ด ์„ค๋ช…์„ ๋‹ค๋ฃจ๋Š” ํŒŒ์ผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด ํŒŒ์ผ์„ .zicf๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
  • zicf ํŒŒ์ผ์€ package ์„ค์น˜ ํ›„ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก package์˜ ์›์ฒœ Source๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์— ์œ„์น˜ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ /data/vault/Source ํ•˜์œ„์— ์œ„์น˜
  • zinst Source ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๊ณผ๊ฑฐ ์„ค์น˜๊ฐ€ ์ด๋ฃจ์–ด์กŒ๋˜ pacakge์— ๋Œ€ํ•œ ๋‚ด์—ญ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‹น์‹œ package๋ฅผ zicf๋ฅผ ํ†ตํ•ด ๋‹ค์‹œ Build ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

zicf ์˜ˆ์ œ

์˜ˆ์ œ

Zicf ๊ตฌ์กฐ

Package ๊ธฐ๋ณธ ์ •๋ณด

  • OS: ํ•ด๋‹น Package๊ฐ€ ์„ค์น˜ ๋  OS์˜ ์ข…๋ฅ˜๋ฅผ ์ž…๋ ฅ ํ•ฉ๋‹ˆ๋‹ค. rhel, ubuntu, osx, freebsd์ค‘ ํ•˜๋‚˜๋ฅผ ์ž…๋ ฅ ํ•ฉ๋‹ˆ๋‹ค.
  • PACKAGENAME: ํ•ด๋‹น Package์˜ ์ด๋ฆ„์ด๋ฉฐ, zicfํŒŒ์ผ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. vipctl.zicf ์ผ ๊ฒฝ์šฐ, ํ•ด๋‹น PACKAGENAME์€ vipctl์ด ๋ฉ๋‹ˆ๋‹ค.
  • VERSION: ํ˜„์žฌ Package์˜ Version์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ 0.1.2์™€ ๊ฐ™์ด ์  ์„ธ๊ฐœ๋กœ Major-Minor๋ฅผ update๋ฅผ ๊ตฌ๋ถ„ ํ•ฉ๋‹ˆ๋‹ค.
  • AUTHORIZED: Package์˜ ์ œ์ž‘์ž ๋˜๋Š” ์ตœ์ข… ์ˆ˜์ •์ž์˜ email์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • DESCRIPTION: ํ•ด๋‹น Package์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ๋‚ด์šฉ์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
  • CUSTODIAN: ํ•ด๋‹น Package์˜ ๊ด€๋ฆฌ ์ฑ…์ž„์ด ์žˆ๋Š” Group์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

Global ๊ถŒํ•œ์„ค์ •

  • ํ•ด๋‹น ๋ถ€๋ถ„์€ Default๋กœ ์ ์šฉ๋˜๋Š” Global Permission์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • File์˜ ๊ฒฝ๋กœ ์„ค์ • ๋ถ€๋ถ„์—์„œ File๋ณ„๋กœ ์„ธ๋ถ€ ๊ถŒํ•œ ํ• ๋‹น์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๊ถŒํ•œ ํ• ๋‹น์ด ์—†์ด - ์ฒ˜๋ฆฌ ํ•  ์‹œ Default๊ฐ’์œผ๋กœ ํ•ด๋‹น Global Permission์„ ๋”ฐ๋ฅด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • OWNER: ๊ถŒํ•œ์ด ์žˆ๋Š” Default user
  • GROUP = ๊ถŒํ•œ์ด ์žˆ๋Š” Default group
  • PERM = File์˜ ๊ธฐ๋ณธ Permission์„ ์ง€์ •ํ•˜๋ฉฐ, 8์ง„์ˆ˜๋กœ ๊ถŒํ•œ์„ ์„ค์ • ํ•ฉ๋‹ˆ๋‹ค.(์˜ˆ. User ๋ฐ Group์˜ ๋ชจ๋“ ๊ถŒํ•œ ๋ฐ ๋ชจ๋“ ์‚ฌ์šฉ์ž์˜ ์ฝ๊ณ ,์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ: 775)

๊ฐœ๋ณ„ ํŒŒ์ผ ์„ค์ •

  • ๊ฐœ๋ณ„ ํŒŒ์ผ์˜ ์„ค์ •์€ ์ˆœ์„œ์— ๋”ฐ๋ผ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • ์ฒซ๋ฒˆ์งธ ๋‹จ๋ฝ: Option type์„ ์ง€์ •ํ•˜๋ฉฐ, ๋Œ€๋ฌธ์ž๋กœ FILE, CONF, SYMB, CRON์„ ์ง€์ • ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • FILE: ๋ณต์‚ฌ๋˜๋Š” staticํ•œ file ์ž…๋‹ˆ๋‹ค.
  • CONF: zinst set์„ ํ†ตํ•ด ์„ค์ •์„ ๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด CONF๋กœ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค.
  • SYMB: file์˜ ๋ณต์‚ฌ ์—†์ด, ์ด๋ฏธ ๋ณต์‚ฌ๋œ file์„ ๊ธฐ์ค€์œผ๋กœ Symbolic link๋ฅผ ์ƒ์„ฑ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • CRON: Crontab scheduler์— ์„ค์ •์„ ์ง€์ • ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ถŒํ•œ์„ค์ • ๋‹จ๋ฝ
  • File Permission: ๊ถŒํ•œ์„ค์ •์„ 8์ง„์ˆ˜๋ฅผ ํ†ตํ•ด ์„ค์ • ๊ฐ€๋Šฅํ•˜๋ฉฐ, default๋ฅผ ์›ํ•  ์‹œ -๋กœ ํ‘œ๊ธฐ
  • File Owner: ์œ ์ €๊ถŒํ•œ ํ• ๋‹น์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, default๋ฅผ ์›ํ•  ์‹œ -๋กœ ํ‘œ๊ธฐ
  • File Group: ๊ทธ๋ฃน๊ถŒํ•œ ํ• ๋‹น์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, default๋ฅผ ์›ํ•  ์‹œ -๋กœ ํ‘œ๊ธฐ
  • ๊ฒฝ๋กœ ๋‹จ๋ฝ
  • ์„ค์น˜ ๋ชฉ์ ์ง€ ๊ฒฝ๋กœ: ํŒŒ์ผ์ด ๋ณต์‚ฌ๋˜์–ด์•ผ ํ•  ๋Œ€์ƒ ๊ฒฝ๋กœ
  • Packaging์„ ์œ„ํ•œ ์†Œ์Šค ๊ฒฝ๋กœ: Package ์ œ์ž‘์„ ์œ„ํ•ด ํ˜„์žฌ zicf ํŒŒ์ผ์ด ์žˆ๋Š” ์œ„์น˜์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•œ Source ๊ฒฝ์šฐ

๋ถ€๊ณผ์„ค์ •

  • ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ Configure ๊ฐ’์˜ Default๊ฐ’์„ ํ• ๋‹น ํ•ฉ๋‹ˆ๋‹ค.
  • ZINST set [๋ณ€์ˆ˜๋ช…] [Default ๊ฐ’]
  • Package ์˜์กด์„ฑ์„ ์œ„ํ•ด, ํ•ด๋‹น Package ์„ค์น˜ ์ „์— ์„ค์น˜๋˜์–ด์•ผ ํ•˜๋Š” Package๋ฅผ ์ง€์ • ํ•ด ์ค๋‹ˆ๋‹ค.
  • ZINST requires pkg [ํ•„์š”ํ•œ Package๋ช…]
  • Package ์„ค์น˜ ํ›„ ์ตœ์ดˆ๋กœ ์‹คํ–‰ ํ•ด ์ฃผ์–ด์•ผ ํ•˜๋Š” ๋ช…๋ น์–ด๋“ฑ์„ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • COMM [shell command]

pkg_gen

asciicast

  • ์œ„์—์„œ ๋‹ค๋ค˜๋˜ zicf ํŒŒ์ผ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์ถฉ๋ถ„ ํ•  ๊ฒฝ์šฐ, Package๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์–ด๋ ค์›€์ด ์—†์„๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ํ•˜์ง€๋งŒ, ์ข€ ๋” ์‰ฌ์šด Package ์ œ์ž‘์„ ์œ„ํ•ด zicf๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑ ํ•ด ์ฃผ๋Š” ๋ช…๋ น์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • zinst_making_tool Package ์„ค์น˜ ํ›„ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst i zinst_making_tool -stable
  • Package๋ฅผ ์ œ์ž‘ํ•˜๊ณ ์ž ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅ ํ•˜์—ฌ Package ์ œ์ž‘์„ ์œ„ํ•œ zicf๋ฅผ ์ƒ์„ฑ ํ•ด ์ค๋‹ˆ๋‹ค.
$ pkg_gen make

 === Please insert an information for the index file create ===
 
 * [ Package name: Default=vipctl-1.0.5 ] =
 ! Notice: You only can use a package name with Alphabet, Number, _(underscore) combination
      
 
 * [ Description] =

 
 * [ Version: Default=0.0.1 ] = 

 
 * [ Default Owner: Default=root ] = 

 
 * [ Default Group: Default=wheel ] = 

 
 * [ Defaut Permission: Default=664 ] = 

 
 Do you need a some command when this pacakge removed ?
 * [ y/n : Default=n ] = 

 
 Do you have a required pacakge ?
 * [ y/n : Default= n ]
  • ์œ„์™€ ๊ฐ™์ด ๊ธฐ๋ณธ์ ์ธ ์ •๋ณด๋“ฑ์„ ๋Œ€ํ™”์‹ ์ž…๋ ฅ์œผ๋กœ ์ฒ˜๋ฆฌ ํ•ฉ๋‹ˆ๋‹ค.

zinst_creator

  • ์ œ์ž‘๋œ zicf ํŒŒ์ผ์„ ํ†ตํ•ด์„œ zinst package ์ œ์ž‘์„ ์ง„ํ–‰ ํ•ฉ๋‹ˆ๋‹ค.
$ zinst_creator vipctl.zicf 

Making a package..... /data/vault/Source/vipctl-1.0.5/vipctl-1.0.5.zinst
TOTAL: 0.120000 sec
  • ์ด๋•Œ ํ•ด๋‹น zicf๊ฐ€ ์žˆ๋Š” ๊ฒฝ๋กœ์—์„œ ์‹คํ–‰ํ•˜๋ฉฐ, ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ๋ฌธ์ž๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.(ex. /home/test/aaa.zicf -> cd /home/test;zinst_creatore aaa.zicf)

rpm2zinst: Redhat๊ณ„์—ด or deb2zinst: debian๊ณ„์—ด

  • ํ˜„์žฌ ์„ค์น˜๊ฐ€ ๋œ RPM package๋ฅผ zinst package๋กœ con-version ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ rpm2zinst wget

##############################################################################
What you want package is wget-1.12-5.el6_6.1.x86_64 right? [ y / n ]
##############################################################################
y

##############################################################################
      wget-1.12-5.el6_6.1.x86_64.tgz package has been created
##############################################################################
 
 === Please insert an information for the index file create ===
 
 * [ Package name: Default=wget-1.12-5.el6_6.1.x86_64 ] =
 ! Notice: You only can use a package name with Alphabet, Number, _(underscore) combination
wget_custom
 
 * [ Description] =

 
 * [ Version: Default=0.0.1 ] = 

 
 * [ Default Owner: Default=root ] = 

 
 * [ Default Group: Default=wheel ] = 

 
 * [ Defaut Permission: Default=664 ] = 

 
 Do you need a some command when this pacakge removed ?
 * [ y/n : Default=n ] = 

  • โ€ป ๋ฐ๋น„์•ˆ ๊ณ„์—ด์—์„œ๋Š” deb2zinst๋กœ ์‚ฌ์šฉ

์„ค์น˜๋œ ํŒจํ‚ค์ง€ ๊ตฌ์„ฑ ๊ด€๋ฆฌํ•˜๊ธฐ

sync

  • zinst๋Š” package ์„ค์น˜ ๋‚ด์—ญ์— ๋Œ€ํ•œ revision์„ ๋ณ„๋„ ๊ด€๋ฆฌ ํ•ฉ๋‹ˆ๋‹ค.
  • /[work_dir]/z/save ๊ฒฝ๋กœ์—๋Š” ์„ค์น˜์— ๋”ฐ๋ฅธ Package ๊ตฌ์„ฑ ๋ฐ set ๊ตฌ์„ฑ์˜ ๊ธฐ๋ก์ด ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • work_dir์€ ์ผ๋ฐ˜์ ์œผ๋กœ /data
  • .save file ํ˜•ํƒœ์ด๋ฉฐ, ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
$ cat /data/z/save/zinst-save.99

# --- Last touched by ralf.yang      --- 
# --- Last command " zinst i sshpass -stable " 
# Date: 2015.09.15_13:27:31 
#
# zinst package installer all-configuration backup-list for the package restore
Package install asciinema-1.1.1.zinst
Package install docker_engine-1.7.1.zinst
Package install git_tool-1.0.1.zinst
Package install gs_nmap-0.0.1.zinst
Package install gs_nodejs-0.0.1.zinst
Package install ralfyang_account_policy-1.0.7.zinst
Package install ralfyang_authorize_client-1.0.2.zinst
Package install ralfyang_httpd_conf_pkgdist-1.0.3.zinst
Package install ralfyang_httpd_server-2.4.12.zinst
Package install hwconfig-1.3.3.zinst
Package install ldap_server-1.0.5.zinst
Package install libcgroup-0.4.0.zinst
Package install linux_kernel-3.10.25.zinst
Package install mysql_client_55-1.0.3.zinst
Package install package_tracker-1.0.6.zinst
Package install server_default_setting-1.2.8.zinst
Package install sshpass-1.0.5.zinst
Package install sudo_user_canopus-0.0.1.zinst
Package install sudo_user_gravity-0.0.1.zinst
Package install sudo_user_kim.so-0.0.1.zinst
Package install sudo_user_parkdy-0.0.1.zinst
Package install sudo_user_ralf.yang-0.0.2.zinst
Package install sudo_user_vivek-0.0.1.zinst
Package install user_account_creator-0.1.0.zinst
Package install user_canopus-0.0.1.zinst
Package install user_gravity-0.0.1.zinst
Package install user_kim.so-0.0.1.zinst
Package install user_parkdy-0.0.1.zinst
Package install user_ralf.yang-0.0.2.zinst
Package install user_vivek-0.0.1.zinst
Package install zinst_making_tool-1.2.3.zinst
- - - 
Package setting server_default_setting.name1=8.8.8.8
Package setting server_default_setting.name2=168.126.63.1
Package setting package_tracker.RotateCycle=30
Package setting package_tracker.Downcheck=14
Package setting ralfyang_authorize_client.BaseDN=dc=gravity,dc=gs
Package setting zinst_making_tool.mailing=ralfyang.com
Package setting git_tool.Branch=gh-pages
Package setting hwconfig.nameserver1=8.8.8.8
Package setting hwconfig.nameserver2=168.126.63.1
Package setting ralfyang_httpd_conf_pkgdist.ServerName=package.dist.ralfyang.com
Package setting ralfyang_httpd_conf_pkgdist.DocumentRoot=/data/dist
Package setting ldap_server.BindDN="dc=gravity,dc=gs"
Package setting ralfyang_authorize_client.LDAPserver=192.168.59.104
  • ์œ„ save file์„ ํ†ตํ•ด ํ•ด๋‹น ์‹œ์ ์— ๋งˆ์ง€๋ง‰์œผ๋กœ ์‹คํ–‰ ๋œ command์™€ ์„ค์น˜๊ฐ€ ๋œ ์ดํ›„์˜ package ๋ฐ ์„ค์ •์˜ ๋‚ด์—ญ์„ ๊ธฐ๋กํ•˜์—ฌ ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ, package ๋ฐ set์„ ๋™๊ธฐํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์•„๋ž˜ command๋ฅผ ํ†ตํ•ด zinst-save.99 ํŒŒ์ผ์ด ๊ธฐ๋ก๋œ ์‹œ์ ์œผ๋กœ package ๊ตฌ์„ฑ์„ ๋™๊ธฐํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst sync -file ./zinst-save.99

=======================================================================================
= Target list for remove                                                              =
=======================================================================================
> Package remove vipctl-1.0.5.zinst
> Package setting vipctl.Check_file=l4-check.html
> Package setting vipctl.DIR=/data/src/html
> Package setting vipctl.name=DEFAULT
> Package setting vipctl.onboot=yes
> Package setting vipctl.vips=VIPS
=======================================================================================

=======================================================================================
= Target list for install & setting                                                   =
=======================================================================================
< Package install sshpass-1.0.5.zinst
=======================================================================================

 === Package & setting will be install & remove as upper list. Are sure ? === [y / n]

restore

  • ์œ„ sync option์„ ์‚ฌ์šฉ ํ–ˆ์„ ์‹œ, save ํŒŒ์ผ์„ ๊ธฐ์ค€์œผ๋กœ, ๋ณ€๊ฒฝ๋‚ด์—ญ์„ ์ ์šฉ ํ•ด ์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ•˜์ง€๋งŒ restore๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ๊ธฐ์กด package๋ฅผ ๋ชจ๋‘ ์‚ญ์ œ ํ›„, save file์„ ๊ธฐ์ค€์œผ๋กœ ์žฌ์„ค์น˜๋ฅผ ์ง„ํ–‰ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ž‘์—…์ž๊ฐ€ ์ง์ ‘ conf ํŒŒ์ผ๋“ฑ์„ ์ˆ˜์ •ํ•˜์—ฌ ์ด๋ ฅ ์ถ”์ ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์—์„œ ์ดˆ๊ธฐํ™” ํ•˜๋Š” ์šฉ๋„๋กœ restore๋ฅผ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst restore -file ./zinst-save.107

zinst install asciinema-1.1.1.zinst
zinst install docker_engine-1.7.1.zinst
zinst install git_tool-1.0.1.zinst
zinst install gs_nmap-0.0.1.zinst
zinst install gs_nodejs-0.0.1.zinst
zinst install ralfyang_account_policy-1.0.7.zinst
zinst install ralfyang_authorize_client-1.0.2.zinst
zinst install ralfyang_httpd_conf_pkgdist-1.0.3.zinst
zinst install ralfyang_httpd_server-2.4.12.zinst
zinst install hwconfig-1.3.3.zinst
zinst install ldap_server-1.0.5.zinst
zinst install libcgroup-0.4.0.zinst
zinst install linux_kernel-3.10.25.zinst
zinst install mysql_client_55-1.0.3.zinst
zinst install package_tracker-1.0.6.zinst
zinst install server_default_set-1.2.8.zinst
zinst install sudo_user_canopus-0.0.1.zinst
zinst install sudo_user_gravity-0.0.1.zinst
zinst install sudo_user_kim.so-0.0.1.zinst
zinst install sudo_user_parkdy-0.0.1.zinst
zinst install sudo_user_ralf.yang-0.0.2.zinst
zinst install sudo_user_vivek-0.0.1.zinst
zinst install user_account_creator-0.1.0.zinst
zinst install user_canopus-0.0.1.zinst
zinst install user_gravity-0.0.1.zinst
zinst install user_kim.so-0.0.1.zinst
zinst install user_parkdy-0.0.1.zinst
zinst install user_ralf.yang-0.0.2.zinst
zinst install user_vivek-0.0.1.zinst
zinst install vipctl-1.0.5.zinst
zinst install zinst_making_tool-1.2.3.zinst
zinst set server_default_set.name1=8.8.8.8
zinst set server_default_set.name2=168.126.63.1
zinst set package_tracker.RotateCycle=30
zinst set package_tracker.Downcheck=14
zinst set ralfyang_authorize_client.BaseDN=dc=gravity,dc=gs
zinst set zinst_making_tool.mailing=ralfyang.com
zinst set git_tool.Branch=gh-pages
zinst set hwconfig.nameserver1=8.8.8.8
zinst set hwconfig.nameserver2=168.126.63.1
zinst set ralfyang_httpd_conf_pkgdist.ServerName=package.dist.ralfyang.com
zinst set ralfyang_httpd_conf_pkgdist.DocumentRoot=/data/dist
zinst set ldap_server.BindDN="dc=gravity,dc=gs"
zinst set ralfyang_authorize_client.LDAPserver=192.168.59.104
zinst set vipctl.name=DEFAULT
zinst set vipctl.vips=VIPS
zinst set vipctl.onboot=yes
zinst set vipctl.DIR=/data/src/html
zinst set vipctl.Check_file=l4-check.html
 
 Do you want to restore as these list ? [ y / n ]

์‹œ์Šคํ…œ ๊ตฌ์„ฑ ๊ด€๋ฆฌํ•˜๊ธฐ

set for configuration

  • zinst๋ฅผ Packageํ™” ํ•˜์—ฌ ๊ด€๋ฆฌํ–ˆ์„๋•Œ ๊ฐ€์žฅ ๊ฐ•์ ์„ ๊ฐ–๋Š” ๋ถ€๋ถ„์ด ์ด ๋ถ€๋ถ„ ์ž…๋‹ˆ๋‹ค.
  • RPM๊ณผ ๋‹ค๋ฅด๊ฒŒ zinst๋Š” package๋ฅผ Staticํ•˜๊ฒŒ๋งŒ ๊ด€๋ฆฌ ํ•˜์ง€ ์•Š๊ณ , ๋™์ ์œผ๋กœ ์„ค์ • ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ์ œ์ž‘ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • zinst set์ด๋ผ๋Š” command๋ฅผ ํ†ตํ•ด ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ list๋ฅผ ์กฐํšŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst set

package_tracker.RotateCycle=30
package_tracker.Downcheck=14
ralfyang_authorize_client.BaseDN=dc=gravity,dc=gs
zinst_making_tool.mailing=ralfyang.com
git_tool.Branch=gh-pages
hwconfig.nameserver1=211.44.62.40
hwconfig.nameserver2=168.126.63.1
ralfyang_httpd_conf_pkgdist.ServerName=package.dist.ralfyang.com
ralfyang_httpd_conf_pkgdist.DocumentRoot=/data/dist
ldap_server.BindDN="dc=gravity,dc=gs"
ralfyang_authorize_client.LDAPserver=192.168.59.104
vipctl.name=DEFAULT
vipctl.vips=VIPS
vipctl.onboot=yes
vipctl.DIR=/data/src/html
vipctl.Check_file=l4-check.html
  • Set list์˜ ํ™•์ธ ํ›„ ํ•ด๋‹น ์„ค์ •์„ ๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ, zicf์— ๋ช…์‹œ๋œ CONF ํŒŒ์ผ์„ ์ฐพ์•„๊ฐ€์„œ ์ž๋™์œผ๋กœ ํ•ด๋‹น ์„ค์ •์„ ๋ณ€๊ฒฝ ์ ์šฉ ํ•ฉ๋‹ˆ๋‹ค.
$ zinst set vipctl.vips=192.168.10.10

vipctl.vips=192.168.10.10
  • ์œ„์—์„œ ๋ณด๋Š”๊ฒƒ๊ณผ ๊ฐ™์ด vipctl์€ package๋ฅผ ๋œปํ•˜๋ฉฐ, ๊ทธ ๋’ค์— .vips๋Š” ํ•ด๋‹น Package์—์„œ ์ง€์ •ํ•œ Virtual IP๋ฅผ ๋ฌด์—‡์œผ๋กœ ๋ฐ›์„ ๊ฒƒ์ธ๊ฐ€ ํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค. =192.168.10.10๋Š” ํ•ด๋‹น ๋ณ€์ˆ˜์— ํ• ๋‹น ํ•  ๋ณ€์ˆ˜ ๊ฐ’์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.
  • ์œ„ ์ž‘์—…์„ ํ†ตํ•ด์„œ ์„ค์ •์ด ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณ€๊ฒฝ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
$ cat /data/conf/vipctl.conf

name=DEFAULT
vips=192.168.10.10
onboot=yes
DIR=/data/src/html
Check_file=l4-check.html
  • ํ•ด๋‹น set ๊ฐ’์ผ ๋ฏธ๋ฆฌ ์•Œ๊ณ  ์žˆ์„์‹œ์—๋Š” package ์„ค์น˜ ์‹œ, ์ž‘์—…์„ ๋™์‹œ์— ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst i vipctl -stable -set vipctl.vips=192.168.10.10 -set vipctl.name=test

===========================================================================
| vipctl-1.0.5.zinst                                        | - Checked   |

----- vipctl-1.0.5.zinst -----
 Downloading...
######################################################################## 100.0%
 [:: 1896 byte has been downloaded ::]
 vipctl-1.0.5 package install ==>>> 
/data/bin/vipctl
/data/src/html/.status
/data/var/status
 --- File Initializing ...
 --- Permission Initializing ...
 --- Setting the Group  ...
vipctl-1.0.5 package has been installed
vipctl.vips=192.168.10.10
vipctl.name=test

$ zinst set  |grep vipctl

vipctl.onboot=yes
vipctl.DIR=/data/src/html
vipctl.Check_file=l4-check.html
vipctl.vips=192.168.10.10
vipctl.name=test
  • ์ด์ฒ˜๋Ÿผ ์„ค์น˜์™€ ํ•จ๊ป˜ set ๋ณ€๊ฒฝ์ด ์žˆ์„ ๊ฒฝ์šฐ -set์œผ๋กœ ๊ตฌ๋ถ„์ง€์–ด ์ค๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ํ•˜๊ณ ์ž ํ•˜๋Š” set์ด ๋งŽ์„ ๊ฒฝ์šฐ, ๊ณ„์†ํ•ด์„œ -set์„ ๋ถ™์—ฌ์„œ ๋ณต์ˆ˜๊ฐœ์˜ ์„ค์ •์„ ๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์œ„ ์„ค์น˜ ๊ณผ์ •์„ ๋ณต์ˆ˜๊ฐœ์˜ ์„œ๋ฒ„์— ์ ์šฉ ํ•˜๊ณ ์ž ํ•  ๋•Œ์—๋Š” -h option์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ๋Œ€์˜ ์žฅ๋น„์— ์ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst i vipctl -stable -set vipctl.vips=192.168.10.10 -set vipctl.name=test -h 192.168.33.1[1-5]

Crontab ์กฐํšŒ ๋ฐ ์„ค์ • ๊ด€๋ฆฌ

  • ์„ค์น˜๋œ Package์˜ cron scheduler๋ฅผ ํ™•์ธ ๋ฐ ์ˆ˜์ • ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst cront -u root -l

##package_tracker-1.0.6 Cron Scheduler
*/10 * * * * /data/bin/package_tracker  #package_tracker
##package_tracker-1.0.6 Cron Scheduler
01 05 * * * /data/bin/accesslog_rotate  #package_tracker
##package_tracker-1.0.6 Cron Scheduler
01 04 * * * /data/bin/track_purge.sh  #package_tracker
##zinst_making_tool-1.2.3 Cron Scheduler
0 7 * * * /data/bin/indexmaker.sh  #zinst_making_tool
  • ์ˆ˜์ • ์‹œ
$ zinst cront -u root -e

##package_tracker-1.0.6 Cron Scheduler
*/10 * * * * /data/bin/package_tracker  #package_tracker
##package_tracker-1.0.6 Cron Scheduler
01 05 * * * /data/bin/accesslog_rotate  #package_tracker
##package_tracker-1.0.6 Cron Scheduler
01 04 * * * /data/bin/track_purge.sh  #package_tracker
##zinst_making_tool-1.2.3 Cron Scheduler
0 7 * * * /data/bin/indexmaker.sh  #zinst_making_tool
~                                                                                            
~

์‹œ์Šคํ…œ ์šด์˜ํ•˜๊ธฐ

start/stop/restart

  • System Daemon์„ ๊ฐ€๋™ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ„๋„์˜ option์„ ํ†ตํ•œ command๋ฅผ ์ง€์› ํ•ฉ๋‹ˆ๋‹ค.
$ zinst start httpd
  • ์œ„ command๋Š” sudo service httpd start ํ˜•ํƒœ๋กœ ์ „ํ™˜๋˜์–ด ์‹คํ–‰ ๋ฉ๋‹ˆ๋‹ค.
  • ์ฆ‰ /etc/init.d/ ํ•˜์œ„์— ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ๋ชจ๋“  daemon ๊ด€๋ฆฌ ํŒŒ์ผ์„ handling ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋•Œ -h๋˜๋Š” -H option์„ ํ†ตํ•ด ๋‹ค์ˆ˜์˜ ์žฅ๋น„์˜ daemon์„ ํ•œ๋ฒˆ์— ๊ด€๋ฆฌ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค๋‹ˆ๋‹ค.
$ zinst start httpd -h 192.168.33.1[1-5]

on/off

  • ์ผ๋ถ€ Package์˜ ๊ธฐ๋Šฅ์ƒ ๊ตฌํ˜„์„ ์œ„ํ•ด on/off command๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • vipctl์˜ ๊ฒฝ์šฐ, L4-status check ํŒŒ์ผ์˜ ์ œ์–ด๋ฅผ ์œ„ํ•ด on/off command๋ฅผ ์‚ฌ์šฉ ํ•ฉ๋‹ˆ๋‹ค.
$ zinst on vipctl

 Status file - [ok]

history

  • Zinst๋ฅผ ํ†ตํ•ด ์ ์šฉ๋œ command๋Š” zinst hist๋ฅผ ํ†ตํ•ด ์กฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ์ถœ๋ ฅ์„ ์›ํ•˜๋Š” ์ค„ ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น ์ˆซ์ž ๋งŒํผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
$ zinst hist 100
2015.09.01_14:00:36	 ralf.yang      : + Install - user_canopus-0.0.1 -stable
2015.09.01_14:00:37	 ralf.yang      : + Install - sudo_user_canopus-0.0.1 -stable
2015.09.01_14:01:13	 ralf.yang      :  * setup  - ralfyang_authorize_client.LDAPserver=192.168.59.104  
2015.09.01_14:01:24	 ralf.yang      : # Daemon restart - ldap_client  
			 ralf.yang      : #     - Daemon Not working: [ OK ] 
2015.09.03_11:15:59	 ralf.yang      : # Daemon stop - docker  
			 ralf.yang      : #     - Daemon Not working:  
2015.09.03_11:16:09	 root           : # Daemon stop - docker  
			 root           : #     - Daemon Working: /data/bin/docker: no process killed  
2015.09.03_11:16:10	 ralf.yang      : - Remove  - docker_io-1.6.6  
2015.09.03_11:16:30	 ralf.yang      : + Install - docker_engine-1.7.1 
2015.09.03_11:17:15	 ralf.yang      : - Remove  - docker_engine-1.7.1  
2015.09.03_11:17:32	 ralf.yang      : + Install - libcgroup-0.4.0 -stable
2015.09.03_11:17:36	 ralf.yang      : + Install - docker_engine-1.7.1 -stable
2015.09.03_11:17:41	 ralf.yang      : # Daemon start - docker  
			 ralf.yang      : #     - Daemon Working: [ OK ]  
2015.09.03_11:39:45	 ralf.yang      : # Daemon stop - docker  
			 ralf.yang      : #     - Daemon Not working: [ OK ] 
2015.09.03_11:40:07	 ralf.yang      : + Install - docker_engine-1.7.1 -same
2015.09.03_11:40:17	 ralf.yang      : # Daemon start - docker  
			 ralf.yang      : #     - Daemon Working: [ OK ]  
2015.09.07_16:57:39	 ralf.yang      : # Daemon restart - httpd  
			 ralf.yang      : #     - Daemon Working: [ OK ]  
2015.09.08_09:10:27	 ralf.yang      : # Daemon start - docker  
			 ralf.yang      : #     - Daemon Working: [ OK ]  
2015.09.14_16:17:12	 canopus        : + Install - user_kim.so-0.0.1 
2015.09.14_16:17:14	 canopus        : + Install - sudo_user_kim.so-0.0.1 
2015.09.15_13:26:44	 ralf.yang      : + Install - sshpass-1.0.5 -stable
2015.09.15_19:18:05	 ralf.yang      : # Daemon on - vipctl  
			 ralf.yang      : #     - Daemon Not working:  Status file - [ok] 

๊นŠ์ด ๋“ค์–ด๊ฐ€๋ณด๊ธฐ

getset

  • package๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์ด์ „์—, ํ•ด๋‹น package๊ฐ€ ์„ค์ • ๊ฐ€๋Šฅํ•œ set ๊ฐ’์ด ์–ด๋–ค๊ฒƒ์ธ์ง€ ์•Œ๊ณ ์ž ํ• ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ํ•ด๋‹น package์˜ version์„ ํฌํ•จํ•œ full-name์„ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
$ zinst getset hwconfig-1.3.3.zinst

hwconfig.nameserver1=211.44.62.40
hwconfig.nameserver2=168.126.63.1

track

  • zinst private repository๋ฅผ ๊ตฌ์ถ•ํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ command ์ž…๋‹ˆ๋‹ค.
  • ์ž์ฒด์ ์œผ๋กœ zinst repo๋ฅผ ๊ตฌ์ถ•ํ–ˆ์„ ์‹œ, ํ•ด๋‹น repo๋ฅผ ํ†ตํ•ด ์„ค์น˜ ๋œ package ๋ฐ ์ ์šฉ server์— ๋Œ€ํ•œ ์กฐํšŒ ๋ฐ ๋‚ด์—ญ ์ถœ๋ ฅ์„ ์ง€์› ํ•ฉ๋‹ˆ๋‹ค.
$ zinst track

Package has been released to below list - Sort by ""
====================================================================================================== 
Host                           Package                                        Date                           
======================================================================================================
110.52.167.188                 ralfyang_deploy_agent-0.0.9.zinst                 [06/Aug/2015:20:12:48]        
110.52.167.224                 vipctl-1.0.5.zinst                              [06/Aug/2015:20:13:27]        
110.52.167.224                 ralfyang_deploy_agent-0.0.9.zinst                 [06/Aug/2015:20:13:29]        
110.52.167.238                 vipctl-1.0.5.zinst                              [06/Aug/2015:20:14:06]        
110.52.167.238                 ralfyang_deploy_agent-0.0.9.zinst                 [06/Aug/2015:20:14:08]        
110.52.167.161                 vipctl-1.0.5.zinst                              [06/Aug/2015:20:14:45]        
110.52.167.161                 ralfyang_deploy_agent-0.0.9.zinst                 [06/Aug/2015:20:14:46]        
110.52.167.175                 vipctl-1.0.5.zinst                              [06/Aug/2015:20:15:19]        
110.52.167.175                 ralfyang_deploy_agent-0.0.9.zinst                 [06/Aug/2015:20:15:21]        
110.52.167.189                 vipctl-1.0.5.zinst                              [06/Aug/2015:20:15:56]        
110.52.167.189                 ralfyang_deploy_agent-0.0.9.zinst                 [06/Aug/2015:20:15:57]        
110.52.167.225                 vipctl-1.0.5.zinst                              [06/Aug/2015:20:16:31]        
110.52.167.225                 ralfyang_deploy_agent-0.0.9.zinst                 [06/Aug/2015:20:16:33]        
110.52.167.239                 vipctl-1.0.5.zinst                              [06/Aug/2015:20:17:09]
110.53.15.171                  vipctl-1.0.5.zinst                              [15/Sep/2015:18:14:48]        
====================================================================================================== 
  • ํŠน์ • Package ๋ณ„๋กœ sort ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค.
$ zinst track vipctl
====================================================================================================== 
Host                           Package                                        Date                           
======================================================================================================
110.52.167.161                 vipctl-1.0.5.zinst                              [06/Aug/2015:20:14:45]        
110.52.167.175                 vipctl-1.0.5.zinst                              [06/Aug/2015:20:15:19]        
110.52.167.189                 vipctl-1.0.5.zinst                              [06/Aug/2015:20:15:56]        
110.52.167.225                 vipctl-1.0.5.zinst                              [06/Aug/2015:20:16:31]        
110.52.167.239                 vipctl-1.0.5.zinst                              [06/Aug/2015:20:17:09]        
====================================================================================================== 
  • ํŠน์ • Host๋ณ„ ์„ค์น˜ ๋‚ด์—ญ ์กฐํšŒ๋ฅผ ์ง€์› ํ•ฉ๋‹ˆ๋‹ค.
$ zinst track 110.52.167.189

Package has been released to below list - Sort by "110.52.167.189"
====================================================================================================== 
Host                           Package                                         Date                           
====================================================================================================== 
110.52.167.189                 hwconfig-1.3.3.zinst                            [05/Aug/2015:12:20:23]        
110.52.167.189                 server_default_setting-1.3.0.zinst              [05/Aug/2015:12:20:24]        
110.52.167.189                 ralfyang_account_policy-1.0.7.zinst               [05/Aug/2015:12:20:25]        
110.52.167.189                 ralfyang_authorize_client-1.0.6.zinst             [05/Aug/2015:12:20:27]        
110.52.167.189                 hosts_file_creator-0.0.2.zinst                  [05/Aug/2015:20:07:09]        
110.52.167.189                 ralfyang_tomcat-7.0.33.zinst                      [06/Aug/2015:14:55:11]        
110.52.167.189                 ralfyang_jennifer_agent-0.0.2.zinst               [06/Aug/2015:14:55:17]        
110.52.167.189                 ralfyang_jennifer_conf-0.0.2.zinst                [06/Aug/2015:14:55:20]        
110.52.167.189                 vipctl-1.0.5.zinst                              [06/Aug/2015:20:15:56]        
======================================================================================================
  • -file= option์„ ์‚ฌ์šฉํ•˜์—ฌ, package๊ฐ€ ์ ์šฉ ๋œ Host๋ฅผ sortํ•˜๊ณ  ์ด๊ฒƒ์„ Hostlist๋กœ ์ €์žฅ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst track vipctl-1.0. -file=./aaa
====================================================================================================== 
Host                           Package                                        Date                           
======================================================================================================
110.52.167.161                 vipctl-1.0.5.zinst                              [06/Aug/2015:20:14:45]        
110.52.167.175                 vipctl-1.0.5.zinst                              [06/Aug/2015:20:15:19]        
110.52.167.189                 vipctl-1.0.5.zinst                              [06/Aug/2015:20:15:56]        
110.52.167.225                 vipctl-1.0.5.zinst                              [06/Aug/2015:20:16:31]        
110.52.167.239                 vipctl-1.0.5.zinst                              [06/Aug/2015:20:17:09]        
====================================================================================================== 
 Hostlist file has been created to ./aaa 
======================================================================================================

$ cat ./aaa

110.52.167.161
110.52.167.175
110.52.167.189
110.52.167.225
110.52.167.239

  • ์ถœ๋ ฅ๋œ Hostlist๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ, update๋ฅผ ์ง„ํ–‰ ํ•ด์•ผํ•˜๋Š” package๊ฐ€ ์ ์šฉ ๋œ ์„œ๋ฒ„๋ฅผ ์ถ”์ถœํ•˜์—ฌ ๋ณ„๋„ ์ž‘์—…์— ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ zinst i vipctl-1.0.7.zinst -H ./aaa

self-update

  • zinst ์ž์ฒด์˜ version์„ update ๊ด€๋ฆฌ ํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์•„๋ž˜์™€ ๊ฐ™์ด ์ ์šฉ ํ•ฉ๋‹ˆ๋‹ค.
$ zinst self-update

 Downloading...
######################################################################## 100.0%
 [:: 87471 byte has been downloaded ::]
Zinst version 4.2.7

Zinst ๋‚ด๋ถ€๊ตฌ์กฐ

๋””๋ ‰ํ† ๋ฆฌ

  • Default ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ /data๋กœ ํ–ˆ์„ ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์€ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
/data
 โ”œ bin: Zinst Package ์„ค์น˜๋ฅผ ํ†ตํ•ด ์‹คํ–‰ ํŒŒ์ผ์ด ์ €์žฅ๋˜๋Š” ์œ„์น˜
 โ”œ conf: Zinst Package ์„ค์น˜๋ฅผ ํ†ตํ•ด ์„ค์ • ํŒŒ์ผ์ด ์ €์žฅ๋˜๋Š” ์œ„์น˜
 โ”œ dist: ์ž์ฒด Repository๋ฅผ ๊ตฌ์ถ• ํ–ˆ์„ ์‹œ, Package๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„
   โ”œ checker: zinst package ์„ค์น˜ ์ „ ์˜์กด์„ฑ ๋ฐ ์ƒ์„ธ ์ •๋ณด๋ฅผ ๊ฒ€ํ† ํ•˜๊ธฐ ์œ„ํ•œ zicf ์›๊ฒฉ ์ €์žฅ์†Œ
   โ”” track_110.52.164.250: track ๊ธฐ๋Šฅ ํ™œ์„ฑํ™” ์‹œ, ํ•ด๋‹น Repo์—๋Š” Package ์„ค์น˜ ์ด๋ ฅ์„ ํ•ด๋‹น repo server์˜ IP๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ €์žฅํ•จ
 โ”œ logs: ์ผ๋ฐ˜์ ์œผ๋กœ package๋ฅผ ํ†ตํ•ด ์„ค์น˜๋œ ๋ฐ๋ชฌ์ด ์šด์˜์‹œ log๋ฅผ ์ €์žฅ ํ•˜๋Š” ์œ„์น˜
 โ”œ src: Package์— ํฌํ•จ๋œ ์™ธ๋ถ€ ํŒŒ์ผ ๋“ฑ์„ ์ž„์‹œ๋กœ ์ €์žฅํ•˜๋Š” ์œ„์น˜
 โ”œ var: /var์™€ ๋™์ผํ•œ ์šฉ๋„์˜ zinst ์ž์ฒด var
 โ”œ vault: Zinst ์ž์ฒด์˜ ๊ธฐ๋Šฅ์„ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” Source ์ €์žฅ์†Œ
   โ”œ Source: ์‚ญ์ œ๋œ Package๋ฅผ ์ œ์™ธํ•˜๊ณ , ํ•ด๋‹น ์„œ๋ฒ„์— ์„ค์น˜๋˜์—ˆ๋˜ package ์ด๋ ฅ์„ ๋ชจ๋‘ ์ €์žฅ
   โ”” zinst: zinst set ๊ฐ’์„ ๊ธฐ๋กํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์œ„์น˜
     โ”” index: Package ์„ค์น˜์ „ ์˜์กด์„ฑ ํ™•์ธ์„ ์œ„ํ•ด zicf๋ฅผ ๋‹ค์šด๋ฐ›๋Š” ์œ„์น˜
 โ”œ z: Application ๋ฐ Linux System์„ ์ปจํŠธ๋กค ํ•˜๊ธฐ ์œ„ํ•ด /etc, /usr, /bin ๋“ฑ์„ ์‹ฌ๋ณผ๋ฆญ์œผ๋กœ ๋งํฌ ํ•œ ๊ฒฝ๋กœ
 โ”” zinst: ์„ค์น˜๋œ zinst package์˜ ์ตœ์‹  ๊ฒฝ๋กœ๋ฅผ ์‹ฌ๋ณผ๋ฆญ์œผ๋กœ ๋งํฌ๋ฅผ ๊ฑธ์–ด๋‘” ๊ฒฝ๋กœ

Nas๋ฅผ ํ™œ์šฉํ•œ dist ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์„ฑ๋ฐฉ์•ˆ

์ฃผ์š” Cron job

  • package_tracker

ํ™œ์šฉ ์˜ˆ์ œ

ex1) Dockerized system

ex2) Backup solution [client / server]

ex3) vip loopback control

ex4) kernel update

ex5) hosts file manager

ex6) web server ๊ตฌ์ถ•ํ•˜๊ธฐ

ex7) tomcat server ๊ตฌ์ถ•ํ•˜๊ธฐ

ex8) Sudoers/OpenLDAP์„ ์ด์šฉํ•œ ๊ณ„์ • ์ •์ฑ… ๋ฐ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ตฌ์ถ•ํ•˜๊ธฐ

ex9) ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์‹œ์Šคํ…œ ๊ตฌ์ถ•ํ•˜๊ธฐ

ex10) iptables_port_forwarding ํŒจํ‚ค์ง€๋ฅผ ์ด์šฉํ•œ ๊ฐ„๋‹จํ•œ port forwarding

About

DevOps management tool for distributed linux systems.(such as the yinst of Yahoo!, Ansible)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages