하이퍼레저 패브릭 실습 - 1: 초기 환경 설정
by 너나나
https://guiyum.tistory.com/112
여기에 대충 블록체인 + 하이퍼레저 패브릭 정리를 해놨다!! 공부해가면서 계속 업데이트 할 듯!!
지금부터는 하이퍼레저 패브릭 실습하면서 이해해보자!!!
실습 환경 초기 설정
처음에 「하이퍼레저 패브릭 철저 입문」이라는 책을 보고 따라해서 윈도우에서 virtual box로 가상머신 구동하고 거기에 ubuntu로 진행하였다!! 그러다가 나중엔 걍 ubuntu에 바로 진행했는데 두 가지 방법 중 뭘 할지는 취향!!!
가상환경으로 실습
먼저 버추얼박스(virtualBox), 베이그런트(vagrant)를 설치하자!!
(https://www.virtualbox.org/ ,https://www.vagrantup.com/ 여기서 사용 중인 OS를 선택해서 받으면 된다)
베이그런트에서 사용하는 게스트 OS 이미지는 'vagrant box'라는 파일에 저장된다. 보통 '.box'라는 확장자를 갖는다.
베이그런트 박스 파일은 인터넷에서 다운로드해서 로컬 파일 시스템에 설치하는 방법으로 사용한다.
책에 나온 대로 우분투 베이그런트 박스 파일을 우분투 공식 사이트에서 다운로드해 로컬 파일 시스템에 설치해보자!!!
1. 우분투 베이그런트 박스 파일 다운로드 및 설치
vagrant box add ubuntu1604 https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-vagrant.box
vagrant box add 명령은 지정한 url에 있는 베이그런트 박스 파일을 다운로드하고 게스트 OS 이미지를 베이그런트 도구 관리를 사용해 설치하는 명령어이다.
첫 번째 인수로 베이그런트 박스 이미지에 등록할 이름을 지정하고 두 번째 인수로는 이미지가 위치한 url을 지정하면 된다.
설치되는 동안 뭔가 와다다ㅏㄷ 뜨는데 box: Successfully added box 'ubuntu1604' (v0) for 'virtualbox'! 이렇게 뜨면 우분투 베이그런트 박스 이미지가 등록 완료 된 것!!
vagrant box list
등록된 베이그런트 박스 이미지를 위 명령으로 확인할 수 있다.
2. 우분투 베이그런트 박스 이미지를 이용해 우분투 게스트 OS 설치
vagrant init 명령을 사용해 게스트 OS용 Vagrantfile을 만든다. Vagrantfile은 지시서와 같은 것으로 베이그런트 박스 이미지를 지정하거나 가상 머신, 게스트 OS를 설정하기 위한 루비 스크립트다.
여기서부터는 적당한 작업용 디렉토리를 만들어서 cmd창을 다시 열면 된다!!! 그러고 앞에서 등록한 베이그런트 박스의 ubuntu1604를 인수로 지정해 vagrant init 명령을 실행해보자!!
vagrant init ubuntu1604
그러면 막 이 디렉토리에 추가됐다~~ 대충 이런 말이 뜬다!! vagrant up으로 가상 환경을 실행할 수 있다~~~ 이런 말도 있고!! 이러면 실행이 완료됐고 Vagrantfile이 만들어진 것이다!!
3. 게스트 OS 메모리 설정
나중을 대비해 게스트 OS에 할당된 메모리 크기를 늘려두자. Vagrantfile을 텍스트 편집기로 연다. 나는 gvim을 설치해서
vim Vagrantfile
이렇게 윈도우에서도 리눅스처럼 명령어를 사용해서 텍스트를 편집했다!! 말고 다른 방법은 잘,,,,!!! 어쨋든
# -*- mode: ruby -*-
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.
# Every Vagrant development environment requires a box. You can search for
# boxes at https://vagrantcloud.com/search.
config.vm.box = "ubuntu1604"
# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
# `vagrant box outdated`. This is not recommended.
# config.vm.box_check_update = false
(생략)
이렇게 뜨는데 밑에서 config.vm.profider 부분부터 end까지 찾아서 config.vm.provider, vb.memory, end 부분의 주석을 해제하고 vb.memory = "4096"으로 수정하여 메모리를 4GB로 변경!!
config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
# vb.gui = true
#
# # Customize the amount of memory on the VM:
vb.memory = "4096"
end
4. 가상 머신과 게스트 OS 기동
vagrant up
위 명령어를 사용해 가상 머신과 게스트 OS를 시작할 수 있다. 아까 우리가 만들었던 작업 디렉토리(Vagrantfile이 있는 디렉토리)에서 해당 명령어를 입력한다.
5. 게스트 OS에 로그인
vagrant ssh
게스트 OS에 로그인하기 위해 위 명령어를 사용한다. 게스트 OS가 있는 작업 디렉토리에서 명령을 실행하면 패스워드를 입력하지 않고 대상 게스트 OS에 로그인할 수 있다.
그리고 셸 프롬프트가 뜬 것도 확인할 수 있다!!
sudo passwd vagrant
위 명령어로 기본 사용자 'vagrant'의 패스워드를 변경할 수 있다!
sudo timedatectl set-timezone Asia/Seoul
timedatecl
위 명령어로 시간대를 한국 표준시로 변경할 수 있다!!!
+) 게스트 OS 정지, 중단 및 재개, 삭제
vagrant halt
이 명령어로 게스트 OS 정지 가능!! 이러면 셧다운 된다. 정지된 게스트 OS는 vagrant up 명령으로 재기동할 수 있다.
vagrant suspend
이 명령어로는 게스트 OS 중단 가능! 중단은 현재의 상태를 그대로 보존하고 있기 때문에 이후에 기기를 재시작하더라도 중단된 상태에서 바로 시작한다.
vagrant resume
얘로 재개 가능
vagrant destroy
얘로 게스트 OS를 삭제한다. 게스트 OS는 가상머신과 함께 완전히 삭제되므로 주의해서 사용해야 한다!!
6. 도커 CE 설치
하이퍼레저 패브릭의 각종 구성 요소는 도커 사용을 전제로 해서 컨테이너 형태로 제공된다. 이들 구성 요소는 도커 소프트웨어와 도커 컴포즈 도구로 실행한다.
sudo apt update
sudo apt upgrade
sudo apt -y install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt -y install docker-ce
위 명령어들을 차례대로 입력하여 도커 ce를 설치한다. 설치할 때 뭔가 오류가 뜨면 오류를 읽어보고 vi로 오류난 부분을 주석처리하면 된다. 아마 install 할때 오타가 있으면 이상한 애들이 입력돼서 오류가 뜨는 것 같다!!
vi /etc/apt/sources.list 이렇게
그 후
sudo docker version
위 명령어로 도커가 잘 설치됐는지 확인해본다. sudo를 붙여 실행했는데 이것은 docker 명령이 docker그룹에 속한 사용자가 아니여서이다!! 사용자를 docker 그룹에 추가한 뒤 다시 로그인하여 docker 명령을 실행해본다.
sudo usermod -aG docker vagrant
exit
vagrant ssh
docker image
저렇게 usermod로 추가한 후 exit로 종료했다가 재로그인해야한다!!! 만약 이래도 권한 없다고 뜬다면
chmod 666 /var/run/docker.sock
이렇게 하면 된다!!!!
이제 도커 컴포즈를 설치하자
sudo apt -y install docker-compose
도커 컴포즈가 잘 설치됐는지 확인해보자. 의존 소프트웨어로 파이썬 2.7이 함께 설치된다.
docker-compose version
python -V
만약 파이썬이 설치돼 있지 않다면 다음 명령어로 파이썬을 설치한다.
sudo apt -y install python
7. Go 언어 설치
나중에 Go 언어를 사용해서 스마트 계약을 개발한다고 한다..!!! 이를 대비해서 미리 Go 언어를 설치해두자
wget https://dl.google.com/go/go1.14.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.14.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
source .profile
go version
경로는 본인 디렉토리에 맞춰서 설정하면 된당
8. Node.js, npm 설치
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt install nodejs
node -v
npm -v
node 14버전을 설치했다!!! 이러면 npm도 같이 설치된다
9. GNU make. gcc/g++, libtool 설치
npm 명령 등이 node.js 응용 프로그램의 의존 모듈이나 라이브러리를 설치할 때나 체인코드를 컴파일 할 때, 네이티브 코드를 포함하는 모듈을 빌드하는 데 필요한 친구들을 설치하자
sudo apt -y install make gcc g++ libtool
ubuntu로 바로 실습
이 방법은 완전 쉽다!! 그냥 microsoft store에 가서 ubuntu를 다운 받고
docker는 https://www.docker.com/get-started 에서 윈도우용을 다운받으면 자동으로 리눅스에도 깔린다!
그러고
sudo apt install git
sudo apt install curl
sudo apt-get install golang
sudo apt-get install jq
차례대로 설치해주면 끝!! 혹시 모르니까 docker -v 명령어로 도커도 잘 있는지 확인해보면 된다!!
https://hyperledger-fabric.readthedocs.io/en/latest/prereqs.html
여기서 시키는대로 하면 된다!!
다음 포스팅에서 하이퍼 패브릭을 설치하고 동작 확인을 해보자!!!!!! 끝!!!
참고 문헌
[1] 시미즈 토모노리 외, 하이퍼레저 패브릭 철저 입문, 위키북스, 2019.
'2022 > 블록체인' 카테고리의 다른 글
하이퍼레저 패브릭 - 4: Fabric Application 실행 (1) | 2022.01.11 |
---|---|
하이퍼레저 패브릭 - 3: 채널에 스마트 계약 배포하기 - 2 (0) | 2022.01.08 |
하이퍼레저 패브릭 - 3: 채널에 스마트 계약 배포하기 - 1 (0) | 2022.01.06 |
하이퍼레저 패브릭 실습 - 2: test network (2) | 2022.01.05 |
블록체인 대충 정리 (2) | 2022.01.01 |
블로그의 정보
공부 기록
너나나