[이 블로그는 http://blog.grallandco.com]에서 신디케이트되었습니다.
소개
Ansible
카우치베이스 클러스터 만들기
- 문서에 따라 클러스터의 각 노드에 Couchbase를 설치합니다. 여기.
- 노드 중 하나를 가져와 다음을 사용하여 클러스터를 "초기화"합니다. 클러스터 초기화 명령을 사용합니다.
- 다음을 사용하여 다른 노드를 클러스터에 추가합니다. 서버 추가 명령을 사용합니다.
- 재조정, 다음을 사용하여 재조정 명령을 사용합니다.
- 다음을 사용하여 버킷을 만듭니다. 버킷 생성 명령을 사용합니다.
vm1.grallandco.com
[couchbase-nodes]
vm2.grallandco.com
vm3.grallandco.com
admin_user: 관리자
admin_password: 비밀번호
클러스터에 대한 # 램 할당량
cluster_ram_quota: 1024
# 버킷 및 복제본
버킷_이름: 앤서블
bucket_ram_quota: 512
NUM_REPLICAS: 2
호스트: 모두
사용자: root
작업:
- 이름: 카우치베이스 패키지 다운로드
get_url: url=http://packages.couchbase.com/releases/2.0.1/couchbase-server-enterprise_x86_64_2.0.1.deb dest=~/.
- 이름: 설치 종속성
APT: PKG=LIBSSL0.9.8 상태=현재
- 이름: 모든 머신에 Couchbase .deb 파일 설치
셸: dpkg -i ~/couchbase-server-enterprise_x86_64_2.0.1.deb
- 제품 다운로드, get_url 명령은 파일이 없는 경우에만 파일을 다운로드합니다.
- apt 명령으로 종속성을 설치하면 state=present를 사용하면 시스템이 아직 없는 경우에만 이 패키지를 설치할 수 있습니다.
- 간단한 셸 명령으로 Couchbase를 설치합니다. (여기서는 Couchbase가 이미 설치되어 있는지 확인하지 않습니다.)
호스트: 카우치베이스 메인
사용자: root
작업:
- 이름: 메인 노드 구성
셸을 실행합니다: /opt/couchbase/bin/couchbase-cli cluster-init -c 127.0.0.1:8091 -cluster-init-username=${admin_user} -cluster-init-password=${admin_password} -cluster-init-port=8091 -cluster-init-ramsize=${cluster_ram_quota}
- 이름: 메인 노드 구성을 위한 셸 스크립트 생성
action: template src=couchbase-add-node.j2 dest=/tmp/addnodes.sh mode=750
- 이름: 구성 스크립트 실행
동작: 셸 /tmp/addnodes.sh
- 이름을 변경합니다: 클러스터 재조정
셸을 실행합니다: /opt/couchbase/bin/couchbase-cli 재조정 -c 127.0.0.1:8091 -u ${admin_user} -p ${admin_password}
- 이름: ${num_replicas} 복제본으로 버킷 ${버킷_이름}을 생성합니다.
셸을 생성합니다: /opt/couchbase/bin/couchbase-cli bucket-create -c 127.0.0.1:8091 -bucket=${버킷_이름} -bucket-type=couchbase -bucket-port=11211 -bucket-ramsize=${버킷_ram_quota} -bucket-replica=${num_replicas} -u ${admin_user} -p ${admin_password}
- 06번과 07번 라인에서 Couchbase CLI를 사용하여 클러스터 초기화하기
/opt/couchbase/bin/couchbase-cli server-add -c 127.0.0.1:8091 -u ${admin_user} -p ${admin_password} -server-add={{ hostvars[host]['ansible_eth0']['ipv4']['address] }}:8091 -server-add-username=${admin_user} -server-add-password=${admin_password}
{% 끝%}

스크립트 템플릿을 사용하는 것보다
with_items
앤서블 문:- 이름: 노드 추가
셸을 실행합니다: \"/opt/couchbase/bin/couchbase-cli server-add -c 127.0.0.1:8091 -u {{couchbase_admin}} -p {{couchbase_admin_password}} –server-add={{ hostvars[item][\’ansible_eth0\’][\’ipv4\’][\’address\’] }}:8091 –server-add-username={{couchbase_admin}} -server-add-password={{couchbase_admin_password}}\"
with_items: groups[\'couchbase-nodes\']
이렇게 하면 앤서블 작업이 반복됩니다. (ansible이 굉장하다는 것을 알고 계셨나요? :) )
감사합니다 플레이북을 테스트하고 업데이트하겠습니다...
저는 Ansible을 정말 좋아하고 여러분의 조언으로 더욱 좋아졌습니다!
레시피를 사용하여 EC2에 couchdb를 설치하려고 했는데, 추가해야 할 작은 수정 사항이 있었습니다. '연결 거부' 오류로 인해 cluster-init 명령이 실패했습니다. 서버가 아직 가동되지 않은 것 같아서 클러스터 초기화 전에 30초 동안 일시 중지 명령을 추가했더니 작동했습니다!
코드:
- 이름: 설치를 완료하기 위해 30초 동안 절전 모드
일시 중지: 초=30
숙면이 할 수 있는 일 :)
다음을 확인할 수도 있습니다. 가상박스/센토스(또는 우분투) 인스턴스를 사용하여 멀티노드 클러스터 실행하기. 모든 매개 변수가 올바르게 설정되어 있다고 가정하면 작동합니다. 20분 만에 실행되었습니다. 이 작업을 수행하기 위해 많은 것을 다운로드하므로 수행하는 동안 온라인 상태인지 확인하십시오.
https://github.com/couchbasela…
이 정보는 인상적이었습니다. 저는 귀하의 게시물 작성 스타일과 이 주제를 지속적으로 설명하는 방식에 영감을 받았습니다. 시간을 내어 이 주제에 대해 논의해 주셔서 감사드리며, 이 주제에 대해 더 많은 것을 배울 수 있어 기쁩니다.
감사합니다,
DevOps 상담