Merge pull request #558 from goody80/master

Infra as a code by own your zinst packages
This commit is contained in:
Raúl Sánchez 2017-11-09 01:35:25 +01:00 committed by GitHub
commit 2fa49ebdc3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 148 additions and 0 deletions

View File

@ -0,0 +1,85 @@
# Zinst
## Install
* Git clone 1st
```
git clone https://github.com/goody80/zinst_repository_docker.git
```
* Git clone for zinst packages (optional)
```
git clone https://github.com/goody80/Zinst_packages.git
cp -Rfv ./Zinst_packages/* ./zinst_repository_docker/dist/
```
## Use
* How to start the zinst repository server
```
cd zinst_repository_docker
docker-compose up -d
```
* How to set the zinst client
```
curl -sL bit.ly/online-install |bash
zinst self-config ip=[IP address of the docker Host] host=[Hostname of docker host]:8080
```
* check the server alive
```
zinst find
```
## Setup
* You can modify the docker-compose.yml for setup as below
* for example: I need to change the port 8080 to 80. - You can do as below
* `8080:80/tcp` -> `80:80/tcp`
```
version: '2'
services:
zinst-repository:
image: zinst/zinst_repository:latest
ports:
- 8080:80/tcp
volumes:
- ./dist:/data/dist:rw
```
## What is the Zinst ?
### zinst?
* Package install manager. It very similar that concept of yinst command in Yahoo!
### Summary
* For the centralized package manage & distributed systems
* Centralized control:
* Install the Package to the destination server
* *ex) zinst install apache_server-1.0.1.zinst apache_conf-1.0.1.zinst -h web0[1-7,9]*
* list-up the package in each server
* *ex) zinst ls*
* list-up the file of package in each server
* *ex) zinst ls -files apache_server*
* Easy find out the installed package-name of a some distributed file
* *ex) zinst ls -files /data/z/httpd/conf/include/_temp.conf*
* Can tracking the release history with who could controlled
* *ex) zinst history*
* Easy can change the configuration setup
* *ex) zinst set apache_conf.maxclient=64*
* Then you can see the configuration has been changed on the Apache server for example.
* Package remove
* Send a command to the distributed systems
* *ex) zinst ssh "whoami" -h web[0-1][0-9], web20*
* Can makes a list of multiple host for the target control
* *ex) zinst ssh "whoami" -H ./hostlist.txt*
* One package, can makes a differnt output
* *ex) zinst install apache_server -set apache_server.maxclient=32 -h web01 web02*
* *zinst install apache_server -set apache_server.maxclient=64 -h news01 news02*
* Daemon controll
* *ex) zinst start httpd*
* Then we can recognize that who managed the daemon in the server as a history
* Easy to find out the package has been released to somewhere
* *ex) zinst track hwconfig-1.
* Supported a package restore & roll-back as a save file
* *ex) zinst restore -file /data/z/save/zinst-save.56*
* Without difficult language and environment. Due to it made by Bash only

View File

@ -0,0 +1,14 @@
version: '2'
services:
zinst-repository:
image: zinst/zinst_repository:0.4
volumes:
- zinst-data:/data/dist
zinst-lb:
image: rancher/lb-service-haproxy:v0.6.4
ports:
- ${public_port}:${public_port}/tcp
volumes:
zinst-data:
driver: local

View File

@ -0,0 +1,44 @@
version: '2'
catalog:
name: "zinst-repository"
version: "7.0.5"
description: "Infra as a code by your own packages. http://zinst.me"
uuid: zinstrepo-0
minimum_rancher_version: v1.5.5
questions:
- variable: public_port
description: "public port to access the zinst repository"
label: "Public Port"
required: true
default: "8080"
type: "int"
services:
zinst-repository:
retain_ip: true
scale: 1
start_on_create: true
health_check:
port: 80
interval: 5000
unhealthy_threshold: 3
request_line: ''
healthy_threshold: 2
response_timeout: 5000
zinst-lb:
scale: 1
start_on_create: true
lb_config:
certs: []
port_rules:
- priority: 1
protocol: http
service: zinst-repository
source_port: ${public_port}
target_port: 80
health_check:
response_timeout: 2000
healthy_threshold: 2
port: 42
unhealthy_threshold: 3
interval: 2000

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

View File

@ -0,0 +1,5 @@
name: Zinst Package repository
description: |
Infra as a code by your own packages. http://zinst.me
version: 7.0.5
category: DevOps