Cloud (GitHub&own Cloud)

다원·2023년 3월 9일
0

GitHub

분산버전관리 시스템
Git Remote repository (원격 저장소)를 이용
사용자들이 원격 저장소에 파일을 업로드 시
Git서버에 Data 저장, 파일의 변경내역을 추적하고 클라이언트 머신과 동기화

원격저장소를 생성할 경우 원격 저장소의 주소를 할당 받음
해당 저장소 주소에 원격 사용자들이 파일을 push/pull 작업을 진행
Manage Access에서 사용자 정보를 입력하여 해당 저장소에 등록할 수 있음

git config

로컬에서 기본값으로 사용할 Git 사용자의 이름과 이메일을 설정하는 것으로 옵션 --global을 사용
Git의 경우 원격저장소에 변경 사항을 추가하는 Commit 작업 시 어느 사용자가 작업하였는지가 중요
Commit 할 때 사용할 이름과 이메일 지정할 때 사용

저장소 별로 Git 사용자와 이메일 정보를 설정할 수 있음
GitHub에서는 Git commit의 email 정보를 사용하여 GitHub 사용자를 매칭
GitHub하나의 계정에는 Primary 메일을 비롯하여 추가 이메일을 등록할 수 있음
고유한 이메일 주소는 오직 하나의 계정에만 등록될 수 있기 때문에 사용자와 매칭이 가능

  • GPG 인증
    로컬에서 user.email 설정하는 것은 commit 작성자가 누구인지를 보장하지 않음
    user.email을 보증하기 위해 추가적으로 GPG 인증을 사용
    추가인증을 완료 할 경우 Verified 표시 생성

git remote

원격저장소에 대한 정보 보유
특정 원격 저장소를 저장할 경우 git remote add 명령어를 사용하여 Repository랑 연결

git Clone

원격 저장소 전체 복사하는 것
새로운 호스트에서 저장한 것을 불러오기 위해 사용하는 것

Brach

Repository에서 데이터를 수정하는 것이 아닌 Brach를 생성하여 코드를 수정
Repository or master Branch에서 수정 할 경우 다른 사용자들에게 영향을 줄 수 있기 때문
Branching out: 현재 사용자 만의 Branch로 어떠한 코드를 생성해도 다른 사용자에게 영향 x
Merge Request: Branch를 병향하기 위해 수행 -> 코드 리뷰 기능이 존재하여 리뷰 진행 후 최종적으로 Repository에 업로드

git origin

인덱스 역할로 원격저장소의 URL 주소 대신 사용할 수 있음

git push/pull 순서

  • push: repository에 파일을 업로드
    git add
    git commit
    git push
  • pull: repository로 부터 파일을 다운로드 받음

명령

add : 로컬 자료를 웹으로 올리기 위한 파일 추가 (인덱스)
Comment: 해당 파일의 버전이나 코멘트 작성
Commit : 변경이 실행되게 해주는 execute와 같은 역할
push: 로컬에서 메인 master 브랜치로 자료를 올릴 때 사용
masterL 웹 상의 Git의 메인 Master 브랜치
origit: Git의 메인 Master 브랜치 웹 주소(Alias)
pull: 메인 Master 브랜치에서 로컬로 자료 가져올 때
merge: 여러 로컬의 브랜치들을 합치는 기능
fetch: 여러 로컬 브랜치들에 흩어져 있는 자료를 merge 해서 가져옴

GitHub 사용

GitHub에 로그인 한 뒤 새로운 Repository를 생성

생성한 저장소를 로컬에서 사용하기 위해 로컬 디렉터리 생성(마운트포인트와 유사) & 초기화 진행

새로운 호스트에서 처음 사용하므로 생성한 원격저장소를 Clone
원격 저장소에 있는 데이터를 모두 복사

현재 연결되어있는 원격저장소를 확인하기 위해 remote -v 사용
추가적으로 특정 원격저장소와 연결할 경우 remote add 사용

commit 할 때 사용자를 자동으로 입력하기 위해 config를 작성

업로드 할 파일을 생성한 뒤 staging으로 옮긴 후 commit으로 버전 설정 한 뒤 GitHub 업로드

  • 업로드 할 때 주의사항
    Brach 설정
    Password 대신 Token 생성하여 Token 값 입력

GitHub에서 업로드한 파일 확인

GitHub에서 파일을 생성

Local에서 다운로드하여 파일 확인

Token 설정

GitHub에서 ID/PW 기반의 Basic Authentication 인증을 금지하고 Token 방식의 인증을 요구
GitHub > Settings > Deveoper Settings> Personal Access Tokens > Access Token 생성 > 생성된 Token 사용하여 작업 진행

own Cloud

데이터 리포지터리를 설정해서 로컬 클라이언트들이 편리하게 데이터를 업/다운 받게 해주는 로컬 형상 서버

  • repository add: add-apt-repository ppa:ondrej/php
  • install: apt -y install apache2 php5.6 php5.6-mysql php5.6-gd php5.6-curl php5.6-opcache php5.6-mbstring php5.6-xml php5.6-intl php5.6-zip && apt -y install mysql-server
  • database 설정
  • ownCloud insall: wget https://ftp.icm.edu.pl/packages/owncloud/owncloud-8.2.10.tar.bz2

웹 서버를 사용하지 않으므로 html 파일을 삭제하는 것
/var/www/ 디렉터리 owncloud가 동작되도록 받은 설치 파일 압축 풀기

해당 디렉터리의 권한 확인에서 초기 설정 그룹이 nobody
passwd 파일에 www-data라는 사용자가 생성되어 있음
owncloud 디렉터리의 사용자와 그룹을 변경

vim /etc/apache2/apache2.conf
: 170줄의 AllowOverid All로 변경
a2enmod rewrite && a2enmod headers
: 모듈 변경 > a2enmod Apache2 구성에서 특정 모듈이 enabled 되게 해주는 스크립트
vi /etc/apache2/sites-available/000-default.conf
:12주의 DocumentRoot 경로 수정 /var/www/owncloud로 변경
(html 디렉터를 삭제 했기 때문에 변경한 것)
owncloud 사용을 위해 방화벽 3306 open

owncloud 이동

Users에서 사용자에 대한 정보를 확인할 수 있고 사용자를 생성할 수 도 있고 그룹을 설정해줄 수 있음
사용자 별로 DiskQuota 할당 및 저장 장소 확인등의 작업을 할 수 있음

Admin에서 보안을 확인하고 personal에서 개인 사용자 설정을 변경할 수 있음

Files
사용자가 파일을 공유할 경우 shared with others 확인할 수 있음

centos를 owncloud 클라이언트로 사용하여 웹브라우저를 통해 owncloud 접속
해당 도메인 접속 허용을 해주어야함

외부에서 접속하는 것은 허용하기 위해 설정 변경
/var/www/owncloud/config/config.php (웹 사이트로 php를 사용함)

restart 실행 한 뒤 접속하면 접속이 가능 그러나 사용자계정으로만 들어갈 수 있음

사용자 계정에서 폴더와 파일 등을 생성하고 업로드 할 수 있음

파일을 생성 후 공유할 시 Share 그룹과 Share link등을 이용하여 공유 가능

공유가 되면 Shred with others에서 자신이 공유한 파일들을 확인할 수 있음

공유시 설정한 그룹과 동일한 그룹의 다른 사용자로 이동하여 shred with you를 확인해보면 파일이 공유 되어 온 것을 확인 할 수 있음

share link로 생성한 링크로 접속도 가능

공유 된 파일에서 외부 사용자가 변경하여도 즉시 동기화 됨
하둡의 분산파일 시스템과 유사

profile
공부일지,

0개의 댓글