Skip to main content

Fabric을 이용한 서버관리/배포 (윈도우에서 설치)

오늘은 천을 써보도록 합시다.
(Fabric을 구글 검색해보니 섬유 패턴 무늬만 잔뜩 나오더군요 … 쿨럭.. )

Fabric의 용도는 여러대의 서버관리 또는 여러군데의 서버에 동시 배포를 할 수 있습니다.
주요 기능은 SSH를 이용하여 remote shell command 및 파일 업로드/다운로드 등을 지원한다고 합니다.

리눅스에서의 설치는 매우 간편하지만….

$ yum install fabric

윈도우에서의 설치는 좀 까다로운 편입니다. — 뭔가 설치할게 많습니다.

(1)우선은 Phthon을 설치해야합니다. 2.7버전을 설치해주세요 — https://www.python.org
설치시에 PATH를 걸어주세요. (프롬프트 어디서든지 사용할 수 있음으로 걸어주는게 편합니다. ㅠ_ㅠ) )

(2)pip도 설치해야 합니다. — https://pip.pypa acheter viagra pharmacie france.io/en/stable/
pip는 패키지 다운로드의 기능을 합니다.
다음 주소에서 pip 설치 파일을 다운로드 합니다.
https://bootstrap.pypa.io/get-pip.py

그런후 프롬프트에서 다운로드 받은 파일을 실행하면 설치가 완료 됩니다.

d:\> python get-pip.py 

(3) 이제 feblic을 설치해봅시다. 다음 명령을 차례대로 실행합니다.

d:\> pip install paramiko
d:\> pip install fabric

설치중 문제가 생긴다면, Microsoft Visual C++ Compiler for Python 2.7를 설치해보세요..
http://www.microsoft.com/en-us/download/details.aspx?id=44266

프롬프트에서 fab 라고 실행하여 다음과 같이 나타나면 설치를 성공한 것입니다.

d:\> fab --version
Fabric 1.10.2
Paramiko 1.15.2

다음에는 실제로 fabric을 사용해보도록 하겠습니다. ;;

SSL 인증서를 AWS에 세팅 해보자

오랜만에 글을 적네요..

요전에 만들었던 CSR을 이용하여 우여곡절 끝에 … SSL 인증서를 발급 받았습니다.

아파치에서 세팅한다면 mod_ssl을 활성화 시키고(빌드를 하던 모듈을 빌드하여 추가하던 해야 합니다. -_- )

어쨌든 업체로 부터 다음과 같은 인증서를 발급 받았습니다. 키 종류별로 주석의 모양이 다릅니다.

-----BEGIN CERTIFICATE-----
6789EpTCCA42gAwIBAgISESF+1234+XNPdN/2hRSjMA0GCSqGSIb3DQEBBQUA
MC4xETA123456oTCEFscGhhU1NMMRkwFwYDVQQDExBBbHBoY123412323231y
1234531MDkwMjE3MjMzMloXDTE2MDkwMjE3MjMzMlowQj21231231322RG9t
....중략....
5g3SoL111111232312341JM9ATmVBMzB7F3tmElBdvxYXJ2/NFQBAwJPhqU=
-----END CERTIFICATE-----

AWS에서는 EC2서버에 직접적으로 웹 세팅을 하고 Security Group에서 443포트를 열어서 사용해도 되지만…

LoadBalancer를 이용하여 좀더 간편하게 설정 할 수 있습니다.
(LoadBalancer는 스위칭 장비로서 여러개의 서버를 사용하여 부하를 분산할 때 사용됩니다. )

세팅하는 위치는 EC2의 LoadBalancers 메뉴로 이동후 생성되어있는 LoadBalancer에서 Listeners 탭을 클릭합니다.
(없을시는 LoadBalancer를 새로 작성.. 물론 접속할 서버도 할당해야합니다.)
elb

여기서 edit를 클릭후 https(Secure HTTP)를 추가합니다.
elb02

추가된 곳 뒤쪽에 Change를 클릭하여 인증서를 추가 할 수 있습니다.(443포트를 80으로 포워딩 하는듯..)
elb03

Private Key에 이전에 서버에서 만든 개인키를 넣습니다.
Public Key Certificate에 업체로 부터 발급받은 인증서를 넣습니다.
Certificate Chain에는 인증서 발급 업체의 키를 넣습니다. CA인증서 합니다. 오류가 날때는 생략해도 됩니다.
(!!?? 대행 업체의 키가 아니며… 발급 업체 입니다. 특정 기기에서 오류가 나면 홈페이지에서 찾아서 넣어줘야합니다.)

설정후 브라우저에서 확인해보면 잘 동작합니다. ^^

ssl002

SSL 인증서를 발급 받아보자 – CSR 만들기

또 오랜만에 글을 적어보는군요

오늘은 HTTPS 프로토콜을 사용하기 위한 SSL 인증서를 발급 받아 봅시다 generic viagra paypal.

우선은 인증서 업체 혹은 대행업체에 신청하기 전에 진행해야 하는 부분까지만 적어 보겠습니다.

CSR 이라고 하는데요. 인증서에 포함될 인증서의 정보를 입력하여 업체에 인증서를 요청한다는 개념으로 이해 하시면 될 것 같습니다.

CSR은 다음과 같은 절차로 진행됩니다.

(덧붙임) 혹시 서버에 openssl이 없는 경우가 있는데요. 가능하면 패키지로 설치하시거나 그래도 없거나 잘 안되면 www.openssl.org에서 다운로드 받아 압축 해제후 빌드하시면 됩니다. (README를 읽어보시기 바랍니다.)

1. 랜덤키 생성

$ openssl md5 * > random.key

random.key파일이 생성되게 됩니다.

2. 개인키 생성

$ openssl genrsa -rand random.key -out 1024 mykey.pem

추가적으로 -des3 옵션을 사용하면, 인증서에 암호를 사용 할 수 있습니다. 이 비밀번호는 웹서버를 구동할 때 입력해야지만 웹서버를 구동할 수 있습니다. (저는 자동으로 하는거 좋아해서 안넣었습니다.)

3. CSR 생성

$ openssl req -new -key mykey.pem > mykey.csr

여기서는 인증서 정보를 입력하게 됩니다.

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:KR  (나라코드를 입력)
State or Province Name (full name) []:Seoul  (도시 혹은 도를 입력)
Locality Name (eg, city) [Default City]:Gangnam-gu  (구를 입력)
Organization Name (eg, company) [Default Company Ltd]:Jusun Laboratory (회사명)
Organizational Unit Name (eg, section) []:R&D Division (부서)
Common Name (eg, your name or your server's hostname) []:www.jusun.org (회사 도메인)
Email Address []:my@email.com (이메일)

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

추가적으로 입력해야 하는 부분들은 그냥 넘어가도 되덥니다.

그럼 생성된 mykey.csr 을 cat mykey.csr 하여 살펴보면 다음과 같이 나타납니다.

-----BEGIN CERTIFICATE REQUEST-----
MIIB2jCCAUMCAQAwgZkxCzAJBgNVBAYTAktSMQ4wDAYDVQQIDAVTZW91bDETMBEG
A1UEBwwKR2FuZ25hbS1ndTEZMBcGA1UECgwQSnVzdW4gTGFib3JhdG9yeTEVMBMG
A1UECwwMUiZEIERpdmlzaW9uMRYwFAYDVQQDDA13d3cuanVzdW4ub3JnMRswGQYJ
~~~~ 중략 ~~~~~
9H7+2Hb8xzywrTCbg1W1RtE2bLhXMCQGvVA0h9YoK1qEnsduASNpELDfIIDJrM3U
iOEx5eNYvkZU4FSBpHHSm9irX/bmixT+Dx9Z/bn/1nYZm+7cUyQyLYybnk6iKg==
-----END CERTIFICATE REQUEST-----

자 이제 이정보를 복사하여 인증서 신청시 사용하시면 되겠습니다.
반드시 주석까지 포함하여 전달하여야 합니다.

저도 일단 구매부터 하고나서 그 다음 글을 적어야죠..

apache에 하는 방법은 여기저기 많으니 AWS의 Load-Balencer에 인증서를 걸어볼까 합니다.

그럼 인증서 신청후 계속 할께욥…

Android Build를 위한 Local Repository를 만들자 (2/2)

이번 포스트에서는 sonatype Nexus를 세팅해봅시다.

기존의 프로세스는 jcenter -> 개발PC에 다운로드 -> 빌드시에 사용 입니다..

우리가 할려는 대략적인 구조는 다음과 같습니다.
jcenter -> Local Repository -> 개발PC에 다운로드 -> 빌드시에 사용.

( 패키지를 찾아서 일일이 Local에 등록시켜 놓는것도 보통일이 아니기에… -_- )

우선 Nexus에 로그인합니다. 그러면 다음과 같이 메뉴가 나타납니다. Repositores를 클릭합니다.

nexus_repos2

그런다음 Add를 클릭하여 Proxy Repository를 클릭합니다.
nexus_repos3

이름은 마음에드는 “아무거나”로 하시고 다음과 같이 세팅합니다.
nexus_repos4

그럼 세팅이 완료 되었습니다.

여기서 중요한 것은 생성된 repository의 주소입니다. 나중에 이 주소가 Android 빌드시에 사용되게 됩니다.
nexus_repos5

다시 Android 프로젝트로 돌아와서….
Build.gradle(Project:아무거나) 파일을 열어주세요. 그리고 앞에서 생성한 repository 주소를
다음과 같이 편집해주세요.

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    /*
    repositories {
        jcenter()
    }
    */
    repositories {
        maven {
            url "http://repo.teracle.com:8081/nexus/content/repositories/trproxy/"
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'
        classpath 'com.google.gms:google-services:1.3.0-beta1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    /*
    repositories {
        jcenter()
    }
    */
    repositories {
        maven {
            url "http://repo.teracle.com:8081/nexus/content/repositories/trproxy/"
        }
    }

}

이 파일을 편집하게 되면 편집툴 상단에 Sync Now 라는 링크가 표시됩니다. 수정이 완료되면
클릭해주세요.

그리고 다시 nexus로 돌아가보면….
nexus_repos6

빌드시에 사용했던 패키지들이 Local Repository에 넘어와 있는 것을 확인할 수 있어요!

끗 -ㅅ-)