전체 글

개발과 운영, 박찬우의 기술 블로그입니다.
DevOps/Linux_리눅스

[Linux] 사용자 계정 생성 (useradd, usermod)

리눅스(Linux)는 멀티유저(다중사용자) 운영체제이기 때문에 많은 사람들이 한 컴퓨터를 사용할 수 있다. 리눅스에서 사용자를 추가하고 삭제하는 방법을 알아보겠다. 사용자 계정 생성 (useradd, adduser) useradd와 adduser 명령으로 사용자를 생성할 수 있다. adduser 명령으로 좀 더 쉽게 사용자를 추가할 수 있고 useradd 명령으로 좀 더 간결하게도 사용 가능하다. root 권한이 있는 유저만 해당 명령어들을 사용 가능하다. # user 생성 및 설정 useradd chanwoo # user 생성 및 추가 그룹 설정 usermod -G manager chanwoo # user 생성 및 추가 그룹 다수 설정 usermod -aG manager chanwoo # user 계정..

DevOps/Git & Github

[Git] ! [rejected] master -> master (fetch first) 에러 (git push 에러)

문제발생 새 프로젝트를 생성하여 push를 진행하려는데 에러가 발생하였다. 원인 리포지토리 내 데이터가 생성되어 있어, 기존 데이터 손실 가능성이 있어 push를 막은 것이다. 내 경우에는 README 파일이 존재하여 발생하였다. 해결방법 $ git push origin +master 해당 명령으로 강제 push를 진행하여 해결하였다. (이 경우 기존 리포지토리 내 데이터가 사라질 수 있다.) 혹은, 리포지토리 내 데이터를 불러온 뒤 push하는 방법이 있다. $ git init #깃 초기화 $ git remote add origin https://github.com/계정명/리포지토리명 #원격 저장소 연결 $ git pull origin master 이후 push 진행...

DevOps/Git & Github

[Git] Unity 대용량 프로젝트 push (Git lfs)

깃 허브(Git Hub)는 동일 프로젝트 정보에 대한 여러 버전 관리를 지원하는 웹 호스팅 서비스이다. 오늘은 예전 본인이 진행한 유니티 프로젝트 하나를 깃허브 설정을 통해 관리하는 방법을 진행해보겠다. github repository 생성 깃허브에 로그인 후 새로운 리포지토리(원격저장소)를 생성한다. 리포지토리 이름과 설명, 공개 여부를 설정할 수 있다. (본인은 Private를 선택하여 비공개로 진행하였다.) 해당 리포지토리 내에 README, .gitignore 파일 생성 여부를 선택 가능하다. .gitignote 파일은 리포지토리에서 관리할 필요가 없는 파일을 필터링 역할을 한다. (즉, 해당 파일에 등록된 파일은 업로드 대상에서 제외되어 push되지 않는다.) .gitignote를 Unity로 ..

DevOps/Git & Github

[Git] fatal: couldn’t remote ref master 에러

1. 문제 발생git pull origin master를 입력했더니 에러가 발생하였다.$ git pull origin masterfatal: couldn’t remote ref master  2. 원인Github의 기본 생성 브렌치 이름이 입력한 이름과 달라서 발생하였다. 즉,  $ git pull origin master 에서 master가 아닌 main으로 명령을 진행했어야 했다.  3. 해결 방법확인한 브렌치의 name으로 pull 명령을 다시 진행하거나, 리포지토리에서 브렌치 name을 변경하는 방법이 있다. 브렌치 페이지에서 좌측 수정 아이콘을 선택한다.    이름을 변경한 뒤 Rename branch를 선택한다.    수정 후 메인 페이지로 이동한 뒤 , ok를 선택한다.   적용이 완료되었다.

DevOps/Git & Github

[Git] failed to push some refs to ... 에러

1. 문제 발생git bash를 이용하여 github에 유니티 프로젝트를 올리는 중 에러 메세지가 발생하였다.$ git push origin mainTo https:///github.com/chanW-pack/soo_project.git ! [rejected] main -> main (fetch first)error: failed to push some refs to 'https://github.com/chanW-pack/soo_project.git'hint: Updates were rejected because the remote contains work that you dohint: not have locally. This is usually caused by another reposit..

DevOps/Git & Github

[Git] Git과 Github

버전관리버전 관리란 시간에 따라 파일의 변경사항을 추적하고 기록하는 것이다.버전 관리는 파일의 변경이 있을 때마다 snapshot을 찍고, 필요한 것을 복구하거나 다양한 버전을 확인할 수 있다.이로 인해 개발자 간의 협업을 위해 개발 소스를 공유하며 파트를 나누어 작업할 수 있다.  Gitgit은 클라우드가 아닌 본인의 로컬 시스템에 설치되고 관리된다.파일의 변경사항을 추적하고 기록하는 것을 도와주는 분산 버전 관리를 지원하며코드 충돌을 방지하고 변경사항을 추적하는 등의 작업이 가능하다.또한 이전 버전으로 되돌리는 등의 작업도 가능하다. 그러나 개인적인 공간(로컬 저장소)를 사용하기 때문에 타인이 실시간으로 내가 작업하는 내용을 알 수 없다.  Githubgithub는 Git을 이용하여 협업 및 프로젝트..

IaC/Ansible_앤서블

[Ansible] fetch, copy 모듈(파일 복사)

fetch, Copy 모듈 사용ansible의 Fetch, Copy 모듈은 linux의 scp 명령어 동작방식과 유사하다.기본적인 모듈 사용에 관한 설명은 ansible 가이드 페이지에서 확인할 수 있다.  ansible.builtin.fetch module – Fetch files from remote nodes — Ansible DocumentationNote This module is part of ansible-core and included in all Ansible installations. In most cases, you can use the short module name fetch even without specifying the collections: keyword. However, ..

IaC/Ansible_앤서블

[Ansible] Sysnchronize 모듈(Remote to Remote 파일전송)

Synchronize 모듈ansible의 Synchrinize 모듈은 linux의 rysnc 명령어를 사용할 수 있도록 만들어 놓은 모듈이다.  Remote to Remote로 데이터 전송ansible에서 파일을 옮기는 방법은 copy, fetch 등의 방법도 있지만,synchronize(rsync)를 사용하여 두 host 간에 데이터를 전송하는 방법에 대해 설명하겠다. 단일 데이터(혹은 2,3개 등 적은 데이터)- 주로 copy, fetch 모듈을 사용한다.대용량의 파일(혹은 디렉터리)- synchronie 모듈을 사용한다.  1. Sysnchrinize default 모드 (push) sysnchrionize default 동작 Sysnchronize는 default로 push mode로 동작한다.S..

IaC/Ansible_앤서블

[Ansible] 반복문 (loop, with_item)

Ansible 반복문ansible에서 반복문이란, task를 반복하는 것이다. 예를 들어 사용자 10 명을 만들어야 한다고 가정한다면, user 모듈로 진행할 때 task를 10개를 생성해야 하는데해당 작업을 반복문을 이용해 효율적으로 줄일 수 있는 것이다. ansible에서 반복문을 사용할 수 있는 방법으로 loop와 with_item 두 가지가 있다.ansible 2.4 까지는 with_* 키워드를 사용하여 작업을 진행하였으나,ansible 2.5 부터는 좀 더 명확한 loop 키워드를 사용한다.(패키지 관련된 모듈은 반복문을 쓰지 않을것을 권장한다고 한다.)  with_item 반복문추가예정  loop 반복문반복문을 사용하여 host 서버의 user를 삭제하는 실습을 진행해보겠다.(user 모듈로 ..

IaC/Ansible_앤서블

[Ansible] cfg 파일 설정(앤서블 명령 설정, 세팅)

ansible.cfg 파일이란?ansible.cfg 엔진은 ansible 명령을 실행할 때 모든 환경설정 및 세팅이 들어있는 ansible.cfg를 참고하여 명령을 실행한다.  ansible.cfg 파일 사용ansible.cfg 파일은 여러 위치에 있을 수 있고, ansible 엔진은 정해진 순서대로 구성파일을 확인한다. ansible 명령이 실행되는 디렉터리에 있는 ansible.cfg 파일홈 디렉터리에서 ansible.cfg를 찾는다. 이게 없으면 default 구성파일을 사용한다.default 구성파일인 /etc/ansible/ansible.cfg 이를 통해 관리자는 다양한 관경이나 프로젝트가 별도의 디렉토리에 저장되는 구조를 생성할 수 있고,각 디렉터리에는 고유 설정 집합으로 맞춤화된 구성파일을 ..

IaC/Ansible_앤서블

[Ansible] Inventory 작성방법

Inventory 작성 방법Invnetory는 확장자명이 따로 존재하지 않는다.따라서 파일 이름은 본인 마음대로 정해도 된다.(inventory 파일은 기본적인 host 주소들의 묶음이라고 생각하면 된다.) 추가로 .yml 파일로도 inventory 작성이 가능하다.mail.example.com //이렇게 하면 Ad-hoc이나 Playbook에서 해당 호스트 네임으로 명령어 실행가능//호스트 네임과 IP주소로 설정 가능[webservers]192.168.0.5192.168.0.6[dbservers]one.example.comtwo.example.comthree.example.com[nossh]nossh.example.com:5050 //기본 ssh포트를 사용하지 않는다면 이런식으로도 설정 가능..

개발/Python_파이썬

[Python] No module named 'pip' 에러 (pip가 갑자기 안되는 경우)

문제 발생방금 전까지만 해도 정상 작동하던 pip 명령이 갑자기 No module named ‘pip’ 에러 메세지를 나타내며 작동하지 않는다.   원인문제 발생 직전 pip 업그레이드를 진행했었다.pip install —upgrade pip 조사 결과 대부분의 pip 미 동작 문제는 해당 과정에서 나타난다고 한다.pip를 업그레이드 하려먼 삭제 후 새 버전을 설치해야 하는데 삭제 후 재설치가 정상적으로 진행되지 않은것이다. 본인은 윈도우에서 진행하다 문제가 발생하였는데,터미널(cmd)를 관리자 권한으로 실행하지 않은 상태에서 pip 업그레이드를 진행하다 보니 삭제는 진행되나설치 시 권한 문제로 실패하면서 해당 오류가 나타난 듯 하다.  해결 방법pip를 재설치하면 해결 가능하다. PyPA를 이용하였다...