'설치'에 해당되는 글 4건

  1. 2018.03.20 HAProxy - Part 1
  2. 2017.02.16 [CentOS 7]Ansbile 설치
  3. 2016.08.04 Puppet Part 1
  4. 2015.05.24 Docker : Part 2
분류없음2018.03.20 05:47

HAProxy  설치하기

 

이번 포스팅은 HAProxy을 설치에 대해서 알아봅니다.

설치 환경은 Cent OS 7.3이며, HAProxy는 Stable 최신 버전인 1.8.4 입니다.

HAProxy를 설치하는 방법은 Yum Repo를 통한 설치와 직접 최신 소스를 이용한 설치 방법으로 가능합니다.

 

HAProxy 설치 : yum

yum install haproxy

yum을 이용하여 설치하는 경우에는 최신 버전이 적용되지 않음.

현재(2018년 3월 20일)기준 Yum Repo의 haproxy는 1.5.18 제공.

yum repo version 확인

[root@zigi-cent ~]# yum info haproxy
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * epel: ftp.riken.jp
Available Packages
Name        : haproxy
Arch        : x86_64
Version     : 1.5.18
Release     : 6.el7
Size        : 834 k
Repo        : base/7/x86_64

 

최신 버전의 HAProxy를 사용하고자 할 때에는  yum을 이용하지 않고 직접 최신 소스를 다운받아서 컴파일을 해서 설치 필요

이 경우에는 직접 컴파일을 통해서 설치하기 위한 필수 패키지가 사전에 설치되어 있어야 함.

사전 패키지 설치

yum install gcc pcre-static pre-devel

 

HAProxy 사이트에서 현재 최신 Stable 버전이 1.8.4를 다운로드

HAProxy 파일 받기

[root@zigi-cent ~]# wget https://www.haproxy.org/download/1.8/src/haproxy-1.8.4.tar.gz
--2018-03-19 20:05:17--  https://www.haproxy.org/download/1.8/src/haproxy-1.8.4.tar.gz
Resolving www.haproxy.org (www.haproxy.org)... 51.15.8.218
Connecting to www.haproxy.org (www.haproxy.org)|51.15.8.218|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2049789 (2.0M) [application/x-tar]
Saving to: ‘haproxy-1.8.4.tar.gz’

100%[===========================================================================>] 2,049,789   1.03MB/s   in 1.9s

2018-03-19 20:05:21 (1.03 MB/s) - ‘haproxy-1.8.4.tar.gz’ saved [2049789/2049789]

 

다운로드 받은 haproxy 파일의 압축 해제

HAProxy 압축 풀기

tar xzvf haproxy.tar.gz

 

압축을 풀고 HAProxy를 수동으로 진행

HAProxy 설치

[root@zigi-cent haproxy-1.8.4]# make TARGET=linux2628
gcc -Iinclude -Iebtree -Wall  -O2 -g -fno-strict-aliasing -Wdeclaration-after-statement -fwrapv    -Wno-unused-label       -DCONFIG_HAP_LINUX_SPLICE -DTPROXY -DCONFIG_HAP_LINUX_TPROXY -DCONFIG_HAP_CRYPT -DENABLE_POLL -DENABLE_EPOLL -DUSE_CPU_AFFINITY -DASSUME_SPLICE_WORKS -DUSE_ACCEPT4 -DNETFILTER -DUSE_THREAD -DUSE_SYSCALL_FUTEX  -DCONFIG_HAPROXY_VERSION=\"1.8.4-1deb90d\" -DCONFIG_HAPROXY_DATE=\"2018/02/08\" -c -o src/ev_poll.o src/ev_poll.c
gcc -Iinclude -Iebtree -Wall  -O2 -g -fno-strict-aliasing -Wdeclaration-after-statement -fwrapv    -Wno-unused-label       -DCONFIG_HAP_LINUX_SPLICE -DTPROXY -DCONFIG_HAP_LINUX_TPROXY -DCONFIG_HAP_CRYPT -DENABLE_POLL -DENABLE_EPOLL -DUSE_CPU_AFFINITY -DASSUME_SPLICE_WORKS -DUSE_ACCEPT4 -DNETFILTER -DUSE_THREAD -DUSE_SYSCALL_FUTEX  -DCONFIG_HAPROXY_VERSION=\"1.8.4-1deb90d\" -DCONFIG_HAPROXY_DATE=\"2018/02/08\" -c -o src/ev_epoll.o src/ev_epoll.c
..후략..

 

[root@zigi-cent haproxy-1.8.4]# make install
install -d "/usr/local/sbin"
install haproxy  "/usr/local/sbin"
install -d "/usr/local/share/man"/man1
install -m 644 doc/haproxy.1 "/usr/local/share/man"/man1
install -d "/usr/local/doc/haproxy"
for x in configuration management architecture peers-v2.0 cookie-options lua WURFL-device-detection proxy-protocol linux-syn-cookies network-namespaces DeviceAtlas-device-detection 51Degrees-device-detection netscaler-client-ip-insertion-protocol peers close-options SPOE intro; do \
        install -m 644 doc/$x.txt "/usr/local/doc/haproxy" ; \
done

Target의 경우에는 설치하고자 하는 운영체제에 따라서 다르지만, 일반적으로 2628 옵션을 사용

2628 linux 커널 2.6.28 혹은 3.x, 그 이상의 버전에서 사용하는 옵션.

설치가 끝난 후, 설치된 haproxy 버전을 다음과 같이 확인하며 최신 1.8.4이 설치된 것을 확인 가능

HAProxy 버전 확인

[root@zigi-cent haproxy-1.8.4]# haproxy -v
HA-Proxy version 1.8.4-1deb90d 2018/02/08
Copyright 2000-2018 Willy Tarreau <willy@haproxy.org>

 

컴파일해서 설치한 경우에는 추가적으로 필요한 디렉토리와 통계 파일을 생성하는 다음의 작업 필요

필요 디렉토리 및 파일 생성

[root@zigi-cent haproxy-1.8.4]# mkdir -p /etc/haproxy
[root@zigi-cent haproxy-1.8.4]# mkdir -p /var/lib/haproxy
[root@zigi-cent haproxy-1.8.4]# touch /var/lib/haproxy/stats

HAProxy 명령 수행을 위한 심볼릭 링크 생성

필요 디렉토리 및 파일 생성

[root@zigi-cent sbin]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy

HAProxy를 서비스로 등록

서비스 등록(권한 변경 포함)

[root@zigi-cent haproxy-1.8.4]# cp ~/haproxy-1.8.4/examples/haproxy.init /etc/init.d/haproxy
[root@zigi-cent haproxy-1.8.4]# chmod 755 /etc/init.d/haproxy
[root@zigi-cent haproxy-1.8.4]# systemctl daemon-reload

HAProxy 서비스 시작

HAProxy 서비스 기동

[root@zigi-cent sbin]# systemctl start haproxy

 

[root@zigi-cent sbin]# systemctl status haproxy.service
● haproxy.service - SYSV: HA-Proxy is a TCP/HTTP reverse proxy which is particularly suited for high availability environments.
   Loaded: loaded (/etc/rc.d/init.d/haproxy; bad; vendor preset: disabled)
   Active: active (running) since Mon 2018-03-19 20:42:49 UTC; 3min 38s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 8211 ExecStart=/etc/rc.d/init.d/haproxy start (code=exited, status=0/SUCCESS)
 Main PID: 8216 (haproxy)
   CGroup: /system.slice/haproxy.service
           └─8216 /usr/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid

Mar 19 20:42:49 zigi-cent systemd[1]: Starting SYSV: HA-Proxy is a TCP/HTTP reverse proxy which is particularly suited for high availability environments....
Mar 19 20:42:49 zigi-cent haproxy[8215]: Proxy stats started.
Mar 19 20:42:49 zigi-cent haproxy[8211]: Starting haproxy: [WARNING] 077/204249 (8215) : parsing [/etc/haproxy/haproxy.cfg:28] : the 'clitimeout' direc... versions.
Mar 19 20:42:49 zigi-cent haproxy[8211]: [WARNING] 077/204249 (8215) : parsing [/etc/haproxy/haproxy.cfg:29] : the 'srvtimeout' directive is now deprec... versions.
Mar 19 20:42:49 zigi-cent haproxy[8211]: [WARNING] 077/204249 (8215) : parsing [/etc/haproxy/haproxy.cfg:30] : the 'contimeout' directive is now deprec... versions.
Mar 19 20:42:49 zigi-cent haproxy[8211]: [  OK  ]
Mar 19 20:42:49 zigi-cent systemd[1]: Started SYSV: HA-Proxy is a TCP/HTTP reverse proxy which is particularly suited for high availability environments..
Hint: Some lines were ellipsized, use -l to show in full.

 

Posted by 네떡지기
DevOps/Automation2017.02.16 19:38

이번 포스팅은 예전에 정리했던 Ansible 관련한 내용 중에 Install이 빠져 있어서 현재 기준으로 간단하게 포스팅을 합니다.

아마 Ansible을 이용한 다른 포스팅을 시작하게 될 듯 싶어서, 다시 설치를 하는 김에  기존에 설치 내용이 포스팅에 없어서, 

정리를 해봅니다.

  - 기존 포스팅은 ZIGISPACE.NET에서 ansible로 검색하시면 됩니다! ^^


 

 

* 설치환경 : CentOS 7

 

1. Extra Packages for Enterprise Linux 

 Fedora를 쓰는 경우에는 직접 Ansible이 설치가 가능하지만, Fedora 계열의 Redhat이나 CentOS 등을 사용하는 경우에는

먼저 epel-release RPM을 설치.

   * epel = Extra Packages for Enterprise Linux

 rpm -iUvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm 

 

2. Yum을 이용해서 Ansible을 설치.

 sudo yum install ansible

 

3. Ansible 설치 확인

 ansible --version

 

○ 각 Distro에 따른 Ansible 설치는 아래의 홈페이지를 확인하시면 됩니다.

  - Ansible 설치 : http://docs.ansible.com/ansible/intro_installation.html#id13

 

 

Posted by 네떡지기
DevOps/Automation2016.08.04 22:02

Today key : Puppet, 퍼펫, manifest, autumation, 자동화, 설치, install, master, agent 

 

이번 포스팅은 Puppet에 대한 포스팅입니다.

약 2년여전에 관련 Automation for Networker라는 주제로 포스팅을 할 때 ansible과 함께 잠깐 정리했던 내용을

다시 정리해보려고 합니다.  아무래도 제 포스팅이 대체로 제가 다시 보기 위해서 정리하면서 공유하는 게 목적이오니~

보시는 분들은 참고하시면 되겠습니다 ^^

그리고 혹시 잘못되거나 수정해야 할 부분이 있으면 덧글 부탁드립니다! ^^

 


 

Puppet를 사용하기 위한 요구사항

 

◇ 하드웨어

    · 최소 Puppet master server : 2CPU Core, 1GB RAM
    · 약 1,000 node 관리를 위해서 2-4 CPU Core, 최소 4 GB RAM.

 

◇ 지원 OS

    · Redhat Enterprise Linux 7,6,5

    · Debian 8 “Jessie”, Debian 7 “Wheezy”

    · Ubuntu 16.04 LTS “Xenial Xerus”, 15.10 “Wily Werewolf”, 14.04 LTS “Trusty Tahr” , 12.04 LTS “Precise Pangolin”

    · Fedora 23, 22

    · Windows Server 2012 R2, 2015, 2008 R2, 2012, 2008

    · Windows Vista, 7, 8, 8.1, 10

    · OS X 10.11 El Capitan, 10.10 Yosemite, 10.9 Mavericks

    · *SUSE Linux Enterprise Server, version 11 and higher

    · *Gentoo Linux

    · *Mandriva Corporate Server 4

    · *Arch Linux

    · *Oracle Solaris, version 10 and higher (Puppet performs limited automated testing on Solaris 11)

    · *AIX, version 5.3 and higher

    · *FreeBSD 4.7 and later

    · *OpenBSD 4.1 and later

    · *HP-UX

 

※ *표기는 Puppet Open-source 버전에서는 미지원하고, Puppet-Enterprise에서 지원.

 

 

Master와 Agent에 따른 지원 플랫폼 (PE 기준)

 

 

 

 

 

 

◇ 네트워크 요구사항

    · Firewall

       - Master Server는 8140 Service Port가 오픈되어야 함. (in-bound)

    · Name resolution

       - 모든 노드는 유일한 Hostname을 가지고 있어야 함.

       - 정방향, 역방향에 대한 DNS 모두 설정 필요.

           * DNS 미 사용시에는 Node의 Hosts 파일에 해당 내용이 포함되어 있어야 함.

 

◇ 기타 필요 패키지

    · Ruby 2.1.x, 2.0.x, 1.9.3

    · Facter 2.4.3 이상, Hiera 2.0.0 이상, json gem, rgen gem 0.6.6 이상

    · msgpack gem (Optional)

 

 


 

Puppet 설치

 

◇ 설치환경 및 패키지 (TEST 환경)

    · CentOS 7.2 (Master / Agent)

    · Puppet 4.5   

    · Hosts에 Node 정보 등록 (DNS 미사용)

   

 ◇ Package 레포지토리 설치 

    · rpm -Uvh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm

       - 각 Linux ~~ 및 버전별로 다름.

       - https://docs.puppet.com/puppet/latest/reference/puppet_collections.html

 


 

◇ Puppet package 설치 

    · yum install puppetserver

        - puppetserver 설치 시, dependency 때문에 puppet-agent도 함께 설치

        - 본 테스트 시에는 Master Node와 Agent Node의 설치는 동일하게 진행하였음. (여기까지 진행 후, VM 복제)

 

 

◇ Master와 Agent Config 설정

    · Hostname / Domain

        - Master : puppet

        - Agent : agent01

        - Domain : puppet.local

    · puppet.conf 설정

        - Master : [master] 섹션에 certname 추가

           [master]

           certname = puppet.puppet.local

        - Agent : [agent] 섹션에 certname 추가

           [agent]

           certname = agent01.puppet.local

    · DNS 혹은 hosts 파일에 master와 agent01 정보 추가 

    ·

 

 ◇  Puppet Master 노드 구동 

    ·  #puppet master --no-daemonzide -d -v

 

 

 

 

 ◇ Puppet Agent 노드 구동 

    ·  #Puppet agent --server master-fqdn --no-daemonize --verbose

 

 

 ◇ Puppet  인증 확인 

    · Master와 Agent 간의 통신을 위해서 인증 작업을 거쳐야 함.

    · Agent 등록 후(Agent가 Master에 접속 후), 현재 인증된 전체 리스트를 확인하기 위해서

      # puppet cert --all and --list 

      명령으로 확인을 하면, 아래와 같이 표기

      puppet.puppet.local (Master)에 대한 정보와 agent1.puppet.local(agent) 정보가 확인되는 데,

      아직 agent가 등록만 되고, 인증이 되지 않았기 때문에 Node 제일 앞에 '+' 표기가 agent1에는 되어 있지 않음 

 

 

 ◇ Puppet 인증 및 확인 

    · Master에서 agent1 Node 인증

      # puppet cert --sign agent1.puppet.local

    · 인증 후, 다시 인증된 리스트를 확인하면, agent1 node가 인증된 것을 확인 할 수 있음. (앞에 '+' 표기)

 

 

 ◇ Puppet Agent 노드 구동 

    · Agent 노드를 다시 실행해보면, 인증받은 인증서로 master와 통신을 성공하고, client가 동작하면서 catalog를 적용

 

 

 


 

Puppet Manifest 확인

◇ 기본 Manifest 테스트

    · /etc/puppetlabs/code/environments/production/manifest 디렉토리에 아래와 같은 manifests를 작성하고,

       agent를 재기동해보면, manifests가 agent1에 적용된 것을 확인할 수 있음.

      

node 'agent1' {

     file { '/zigi/osversion':

       content => $osname,

    }

 }

 

 

    ·  기타 manifest 적용하는 부분에 대한 내용은 이후 포스팅에서 다룰 예정이며,

        아래의 기존 포스팅에서도 일부 확인 가능합니다.

 

 

 

 

※ 기존 포스팅 확인 : http://zigispace.net/791

                            http://zigispace.net/789

 

 

Posted by 네떡지기
분류없음2015.05.24 21:52

 


Docker, Openplatform, install, setup, image , container : today Key

 

개발자와 Sysadmin을 위해서 빌드(Build)하고, 이동(Ship)하고, 분산된 어플리케이션을 실행(Run)하기 위한 OpenPlatform인

Docker의 2번째 포스팅입니다.  이번 포스팅에서는 Docker를 사용하기 위해서 설치하고, 간단하게 Docker를 이용하여

Container를 만들어서, 동작/정지 등의 기본적인 기능을 수행해보며, 마지막에는 전체 Flow를 간단하게 알아봅니다. 


Last Updated : 2015. 08. 26  


 

 

Docker 설치하기 (Ubuntu 14.04 기준)

    - docker.io 패키지를 아래와 같이 설치

 

 

          ※  리눅스 배포판을 자동으로 인식해서 Docker를 설치하려면 다음과 같이 하면 된다.

                 wget  -q0- https://get.docker.com/  | sh

 

 


 

Docker 시작하기

 

•Docker에서 사용 가능한 이미지 조회

     -  # docker search TERM

   - 엡에서 설치 가능한 이미지 조회하기 : https://registry.hub.docker.com

   - 이미지 이름에 / 들어간 이미지의 경우에는 일반 User Docker Hub 업로드한 이미지로,

     공식 이미지의 경우에는 User명이 붙지 않음. 

 

 

[Web에서 확인]

 

 

 

 

•Docker 이미지 다운받기

    - Docker Hub에서 원하는 이미지를 다운 받고자 할 떄 사용.

    -  # docker pull <image_Repo>:<TAG> 

    - TAG는 Version이 되며, 미 지정시에는 Latest(최신 버전)으로 다운받게 된다.

 

•Docker 이미지 리스트 확인(Local)

    - 현재 Local 에 있는 Docker 이미지 정보 확인

    - # docker images 

 

 

 

 

   

•Container 생성하기

    - Docker Image와 Docker File을 가지고, Docker Container을 생성.

    - # docker run <option> <image_Repo | image ID> <runnning_process>

 

•Container 프로세스 확인

    - 현재 생성된 Container 확인.

    - default로는 현재 구동 중인 Container에 대한 정보만 표기되며, 정지된 Container까지 보려면, -a 옵션을 사용한다.

    - # docker ps <option> 

 

 

 

 

•Container 정지 / 시작 / 재시작

    - 생성된 Container를 시작(Start),정지(Stop),재시작(Restart)

    - # docker < start | stop | restart > <container_ID | NAMES>

 

 

 

•Container 삭제

    - 생성된 Container 삭제 (Container가 정지된 상태에서 삭제)

    - # docker rm <container_ID | NAMES>

 

 

 

•Docker 이미지 삭제

    - Docker 이미지 삭제 

    - # docker rmi <Repo:Tag | IMAGE_ID>

 

 


Docker Flow  

 

 

 

 

 

 

 

 

 

 

 

Posted by 네떡지기

티스토리 툴바