[root@chef-mjs study]# cat metadata.rb 

name 'study'

maintainer 'The Authors'

maintainer_email 'you@example.com'

license 'all_rights'

description 'Installs/Configures study'

long_description 'Installs/Configures study'

version '0.1.0'


depends 'apache2', '>= 1.0.4'


[root@chef-mjs study]# knife cookbook upload study 

Uploading study          [0.1.0]

ERROR: Cookbook study depends on cookbooks which are not currently

ERROR: being uploaded and cannot be found on the server.

ERROR: The missing cookbook(s) are: 'apache2' version '>= 1.0.4'


-> dependecy error 발생


- syntax

< (less than)

<= (less than or equal to)

= (equal to)

>= (greater than or equal to)

~> (approximately greater than)

> (greater than)




'공부하는 Study ' 카테고리의 다른 글

[chef] knife node, knife client 제거  (0) 2015.09.04
[chef] Berkshelf  (0) 2015.09.04
chef-DK  (0) 2015.09.04
SublimeText3 package control 관련  (0) 2015.06.10
RHCSA 준비 #2  (0) 2014.05.21
Posted by 뭉탁거림
,

chef-DK

공부하는 Study 2015. 9. 4. 13:39

The Chef Development Kit contains everything you need to start using Chef, along with the tools essential to managing the code that runs your business.


- Chef 개발에 있어 필요한 도구들의 집합

- chef workstation에서 패키지 설치 하나로 손 쉽게 개발에 필요한 utils 혹은 managing 도구들이모여있는 development kit


- command-line tool "chef" 추가

- cookbook 의존성 관리 프로그램 Berkshelf

- ChefSpec, Foodcritic, chef zero, 등등 유용한 util 포함 등등



# chef generate cookbook chef-repo/cookbooks/test

chef-dk에서 제공하는 chef 라는 명령어를 통해 cookbook 생성 가능

물론 knife cookbook create test 같은 개념이다.



'공부하는 Study ' 카테고리의 다른 글

[chef] Berkshelf  (0) 2015.09.04
[chef] cookbook 업로드시 dependencies 정의(metadata.rb)  (0) 2015.09.04
SublimeText3 package control 관련  (0) 2015.06.10
RHCSA 준비 #2  (0) 2014.05.21
[리눅스] RHCSA 정리 EX200  (0) 2014.05.20
Posted by 뭉탁거림
,

ansible

시스템 환경 설정 및 배포 자동화 플랫폼(CM Tools)

Agentless 구조 

ssh protocol base

학습 시간량이 및 시스템 복잡성이 낮아 쉽게 배포 자동화 환경 구축 가능

멱등성 보장

- 설치


python package 관리 pip 설치

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum install python-pip

yum install python-devel

pip list

pip install paramiko pyYAML jinja2 httplib2

pip install ansible



- 설정

mkdir /etc/ansible

echo "127.0.0.1" > /etc/ansible/hosts : remote 호스트 명시 

Inventory File

  - Remote Server에 대한

  - /etc/ansible/hosts/Ansible-hosts [Default]

  - '-i' 옵션으로 별도의 inventory File 지정 가능

  - Remote host Grouping 가능


[cloud]

10.12.18.200

10.12.18.199


[cloud2]

10.12.18.200

10.12.18.199


Playbook File

  - ansible 환경 설정 및 배포

  - yaml 문법을 사용

  - YAML의 제일 첫 줄은 '---'로 시작하며, 이는 YAML 포맷의 시작 지점을 뜻함.


Template File

  - 실제 처리하고자 하는 업무에 대한 Template

  - Jinja2 적용 가능(Template Task인 경우)

  - 관례상 확장자는 '.j2'


- ssh-key 등록

ssh-key 생성

ssh-keygen -t rsa

ssh-copy-id server@IP로 옮김


- ansible 명령어

1) ansible : 간단한 배포 명령어 수행

ansible -i /etc/ansible/hosts all -m shell -a hostname


2) ansible-playbook : yml 파일에 명시되어 있는 배포 작업 수행

ansible-playbook -i /etc/ansible/hosts ping.yml


---

- hosts: cloud

  remote_user: root

  tasks:

    - name: test connection

      ping:

      remote_user: root


  tasks:

    - name: remote cmd test

      command: mkdir test


'나만의 Cloud' 카테고리의 다른 글

SLA  (0) 2016.05.09
ubuntu keepalived  (0) 2016.04.20
Virtual box Vagrant  (0) 2015.07.09
puppet Resource  (0) 2014.05.19
[puppet] puppet 설치  (0) 2014.05.14
Posted by 뭉탁거림
,

python pip

Python_Study 2015. 8. 21. 16:52

python package 관리 pip 설치

pip : python package manage software 


CentOS 6 기준으로....

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm


yum install python-pip

yum install python-devel

pip list


사용법은 

pip install package

pip list 등등 확인 ~



'Python_Study' 카테고리의 다른 글

[python] pass, continue 차이  (2) 2015.09.23
[python] class , self  (0) 2015.09.10
Flask 정리  (0) 2015.02.05
52장 카드만들기  (0) 2014.08.20
[python] xlwt - Excel 생성 모듈  (0) 2014.01.09
Posted by 뭉탁거림
,

Vagrant는 Vagrantfile 이용해서 Config


0. mkdir vagrant : 작업 폴더 생성


# vagrant box add NAME URL

vagrant box add centos64 http://downloads.sourceforge.net/project/nrel-vagrant-boxes/CentOS-6.5-x86_64-v20140504.box?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fnrel-vagrant-boxes%2Ffiles%2F&ts=1436418211&use_mirror=jaist


# vagrant init BOX_NAME

vagrant init centos64


1. vagrant init : Vagrantfile 을 만든다.

This will place a Vagrantfile in your current directory.


Box

virtual machine 의 Base Image 이다. 여러 프로젝트에서 box 를 공유해서 사용할수 있다


Vagrantfile 설정

vagrant up

vagrant reload --provision


2. vagrant box add chef/centos-6.5 

Added boxes can be re-used by multiple projects. Each project uses a box as an initial image to clone from, and never modifies the actual base image This means that if you have two projects both using the hashicorp/precise32 box we just added, adding files in one guest machine will have no effect on the other machine.



3. Vagrantfile 수정


Vagrant.configure("2") do |config|

  config.vm.box = "hashicorp/precise32"

end


4. vagrant up

In less than a minute, this command will finish and you'll have a virtual machine running 


vagrant destroy : up 에 적용됬던 내용들을 모두 지운다. box 를 지우는건 아니다.


set PATH=%PATH%;C:\Program Files (x86)\Git\bin\


5. vagrant ssh 


Vagrantfile 설정

vagrant up

vagrant reload --provision




'나만의 Cloud' 카테고리의 다른 글

ubuntu keepalived  (0) 2016.04.20
ansible 설치 및 기본 구성  (0) 2015.08.21
puppet Resource  (0) 2014.05.19
[puppet] puppet 설치  (0) 2014.05.14
[chef] chef 참고자료  (0) 2014.04.28
Posted by 뭉탁거림
,
  1. 서브라임 텍스트3 package control 설치
  • View -> console

 

import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())

 

  1. 플러그인 설치

package control설치 후 preference > package control 선택 → install package 선택→ 플러그인 검색 후 설치


   3. sftp 설치 후 사용 ~

'공부하는 Study ' 카테고리의 다른 글

[chef] cookbook 업로드시 dependencies 정의(metadata.rb)  (0) 2015.09.04
chef-DK  (0) 2015.09.04
RHCSA 준비 #2  (0) 2014.05.21
[리눅스] RHCSA 정리 EX200  (0) 2014.05.20
RHCSA 준비  (0) 2013.10.21
Posted by 뭉탁거림
,

ISCSI initiator ISCIS Connection I/O 혹은 특별한 활동이 없을 경우에 ping check 주기적으로

이때 ping check하는 파라미터 값임

# Time interval to wait for on connection before sending a ping.
node.conn[0].timeo.noop_out_interval = 5

 

그리고 나서 미리 정해진 ping timeout 시간의 응답을 대기하다가 어떤 문제로 인해 timeout 값을 초과하게 되면 어플리케이션이나 multipath S/W I/O error connection fail 선언

이때 ping to timeout 값이 timeo.noop_out_timeout 값이다

# To specify the time to wait for a Nop-out response before failing
# the connection, edit this line. Failing the connection will
# cause IO to be failed back to the SCSI layer. If using dm-multipath
# this will cause the IO to be failed to the multipath layer.
node.conn[0].timeo.noop_out_timeout = 5

 

 

Ping timeout으로 인한 connection fail 발생하는 경우(iscsi target 문제나 network issue 문제가 있을 )

아래 파라미터 replacement_timeout 의해서 시스템이 다시 path session 맺기 위해 대기한다.

replacement_timeout은 반드시 noop_out time보다는 높은 수치로 설정이 되어야됨..!

node.session.timeo.replacement_timeout = replacement_timeout

 

#iscsi session online 상태에서 파라미터 적용하는 방법

iscsiadm -m node -T target_name -p target_IP:port -o update -n node.session.timeo.replacement_timeout -v $timeout_value

'리눅스-Linux' 카테고리의 다른 글

[Linux] iptables 사용  (0) 2015.10.11
[리눅스] 유용한 find , grep 사용법  (1) 2015.10.11
[리눅스] 파일 무결성 검증  (1) 2014.11.18
[리눅스] parted  (0) 2014.11.18
[리눅스] kdump  (0) 2014.11.07
Posted by 뭉탁거림
,

Flask 정리

Python_Study 2015. 2. 5. 15:44

from flask import Flask : Flask class 임포트
app = Flask(__name__) : Flask 인스턴스 생성

@app.route('/') : route() 데코레이터를 사용해서 Flask에게 어떤 URL이 우리가 작성한 함수를 실
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()

지금까지는 url을 함수로 매핑시켜주는 @app.route를 살펴봤다. 반대도 가능할까? url_for()를 사용하면 된다. 첫번째 파라메터는 함수의 이름이고 두번째부터는 URL에서의 변경부분이다. 없는 두번째 파라메터는 query parameter가 된다.

url_for('hello_world') => /
url_for('username', username='soo') => /username/soo
url_for('username', query='soo') => /username?query=soo

 

 

 


 

'Python_Study' 카테고리의 다른 글

[python] class , self  (0) 2015.09.10
python pip  (0) 2015.08.21
52장 카드만들기  (0) 2014.08.20
[python] xlwt - Excel 생성 모듈  (0) 2014.01.09
[python] List  (0) 2013.12.17
Posted by 뭉탁거림
,

Validation / verification

Study 2015. 2. 5. 14:24

validation : 확인

 Confirmation that the product, as provided (or as it will be provided), will fulfill its intended use. In other words, validation ensures that "you built the right thing." 
올바른 제품을 만들었는지 체크; 사용자의 요구사항을 만족; 의도된 사용법을 제품이 만족

verification : 검증

Confirmation that work products properly reflect the requirments specified for them. In other words, verification ensures that "you built it right" 

제품을 올바르게 만들고 있는지 체크; 제품의 요구사항이나 설계 명세서에 따라 만들어졌는지

 

예) 허블망원경에 대한 이야기로 거울을 제작하는데 정밀함과 정확함이 요구되는데. 이를 지구상에서 테스트하기 어려웠다고 함...

거울을 테스트하기 위한 유일한 방법은 거울이 명세서 대로 제작 되었는지 (검증)을 하였지만 실제로 지구 궤도에 올려 놓고 망원경을 작동 한 후 초점이 맞지않았다고 한다 즉 (확인) 작업이 안되었던 것이다.

'Study' 카테고리의 다른 글

spring boot 시작  (0) 2016.05.26
Network Strorage(DAS/NAS/SAN)  (1) 2014.04.02
VLAN(Virutal LAN) 개념정리  (0) 2014.03.11
Posted by 뭉탁거림
,

인터넷이나 외부 레포로 부터 이미지나 파일 다운로드시 SHA1SUM 또는 MD5SUM 파일을 본적이 있을 것

이 파일이 무엇이냐,,,


3문자으로 요약하자면

1) 파일을 다운로드 시 원본 파일과 동일한 파일인지 확인하는 목적

2) 체크섬(checksum) 정보가 포함되어 있다.

여기서 checksum이란.... 데이터의 정확성을 검사하기 위한 용도로 사용되는 합계. 오류 검출 방식의 하나임..ㅋㅋ

MD5 (128 비트) 체크섬을 확인

SHA1 (160 비트) 체크섬을 확인


o md5sum :

Usage: md5sum [OPTION]... [FILE]...

Print or check MD5 (128-bit) checksums.


o sha1sum

Usage: md5sum [OPTION]... [FILE]...

Print or check MD5 (128-bit) checksums.


예제는 펌!!!!!!!!!!!!!!

[ 옵션 ]

-b, --binary

바이너리 모드로 읽기

-c, --check

파일에 (md5, sha1) 합계를 읽고 체크.

-t, --text

텍스트 모드로 읽기 (기본값)

체크섬을 검증 하는 경우의 옵션

--quiet

체크섬 검증이 성공한 메시지는 출력 안함

 

 

▶ md5sum, sha1sum 명령어를 사용해 파일의 체크섬을 생성.

$ touch devanix

$ md5sum devanix

d41d8cd98f00b204e9800998ecf8427e devanix

$ sha1sum devanix

da39a3ee5e6b4b0d3255bfef95601890afd80709 devanix

☞ 파일의 유효성을 검증하기 위해 md5sum 또는 sha1sum 정보 중 무엇을 선택할지는 전적으로 배포자의 결정.

 

Xubuntu 11.04 (Natty Narwhal) 배포판 사이트에서 MD5SUMS 파일 검증.

/* Xubuntu 11.04(Natty Narwhal) 다운 */

$ wget http://cdimage.ubuntu.com/xubuntu/releases/11.04/release/xubuntu-11.04-desktop-i386.iso

--2011-08-07 18:57:05-- http://cdimage.ubuntu.com/xubuntu/releases/11.04/release/xubuntu-11.04-desktop-i386.iso

Resolving cdimage.ubuntu.com... 91.189.92.164

접속 cdimage.ubuntu.com|91.189.92.164|:80... 접속됨.

HTTP request sent, awaiting response... 200 OK

Length: 722745344 (689M) [application/x-iso9660-image]

Saving to: `xubuntu-11.04-desktop-i386.iso'

 

100%[==========================================>] 722,745,344 6.70M/s in 2m 51s

2011-08-07 18:59:57 (4.03 MB/s) - `xubuntu-11.04-desktop-i386.iso' saved [722745344/722745344]

 

/* 해당 사이트 MD5SUMS 파일 다운 */

$ wget http://cdimage.ubuntu.com/xubuntu/releases/11.04/release/MD5SUMS

--2011-08-07 19:03:00-- http://cdimage.ubuntu.com/xubuntu/releases/11.04/release/MD5SUMS

Resolving cdimage.ubuntu.com... 91.189.92.174

접속 cdimage.ubuntu.com|91.189.92.174|:80... 접속됨.

HTTP request sent, awaiting response... 200 OK

Length: 266 [text/plain]

Saving to: `MD5SUMS'

 

100%[==========================================>] 266 --.-K/s in 0s

2011-08-07 19:03:01 (5.88 MB/s) - `MD5SUMS' saved [266/266]

 

/* 체크섬 파일(MD5SUMS) 내용 보기 */

$ cat MD5SUMS

ab4b5b18892afd8d4d3228fbc30061d9 *xubuntu-11.04-alternate-amd64.iso

d5b6d8595c44e9954ebc4f188cb9fb49 *xubuntu-11.04-alternate-i386.iso

f1b224166bea923042e53b0e9d5ff63f *xubuntu-11.04-desktop-amd64.iso

78719bfee11576729a62b4a241d40b19 *xubuntu-11.04-desktop-i386.iso

 

/* MD5SUMS 파일에 기록되어 있는 모든 파일을 한 번에 검증 */

$ md5sum -c MD5SUMS

md5sum: xubuntu-11.04-alternate-amd64.iso: 그런 파일이나 디렉터리가 없습니다

xubuntu-11.04-alternate-amd64.iso: 열기 또는 읽기 실패

md5sum: xubuntu-11.04-alternate-i386.iso: 그런 파일이나 디렉터리가 없습니다

xubuntu-11.04-alternate-i386.iso: 열기 또는 읽기 실패

md5sum: xubuntu-11.04-desktop-amd64.iso: 그런 파일이나 디렉터리가 없습니다

xubuntu-11.04-desktop-amd64.iso: 열기 또는 읽기 실패

xubuntu-11.04-desktop-i386.iso: 성공

md5sum: 경고: 3 중 4 개의 파일들을 읽을 수 없었음

 

/* 체크섬 파일에 있는 파일 목록 중 하나만을 검증 */

$ cat MD5SUMS | grep *desktop-i386* | md5sum -c

xubuntu-11.04-desktop-i386.iso: 성공

MD5SUMS 파일 대신 SHA1SUMS 파일을 가지고 있더라도, sha1sum 명령어와 동일

 

 

[ /etc 디렉토리의 모든 파일에 대한 체크섬 생성 & 검증 ]

♧ find 명령어와 md5sum 명령어를 함께 사용한다면 파일시스템의 어떠한 부분이라도 검증할 수 있다.

 

① /etc 디렉토리의 모든 파일에 대한 md5 체크섬 생성

$ sudo find /etc -type f -exec md5sum {} \; > /tmp/md5.list 2> /dev/null

128비트 체크섬이 기록된 /tmp/md5.list 파일 생성.

 

② 시간이 지난 뒤, 이들 중 어떤 것이 변경 되었는지 확인

$ sudo md5sum --quiet -c /tmp/md5.list

/etc/hosts.allow: 실패

md5sum: *경고*: 1588 중 1개가 서로 일치하지 않는 체크섬으로 계산됨match

☞ 결과에서 볼 수 있듯이, 하나의 파일(hosts.allow)만 변경 되었다.

☞ 필요 하다면 다음 단계로 변경된 파일을 조사하여 의도적인 것인지 살펴본다.


'리눅스-Linux' 카테고리의 다른 글

[리눅스] 유용한 find , grep 사용법  (1) 2015.10.11
[Linux] iscsi.conf timeout 관련  (0) 2015.06.10
[리눅스] parted  (0) 2014.11.18
[리눅스] kdump  (0) 2014.11.07
[리눅스] nohup  (0) 2014.10.31
Posted by 뭉탁거림
,