줄기세포

[클라우드 개발 환경설정 - GUI] 클라우드 서버에 개발 환경 구성 - 어느 Client PC에서나 같은 환경에서 개발할 수 있도록 구성하기 ( Xshell, VScode ,Golang ,Xming ) 본문

Linux

[클라우드 개발 환경설정 - GUI] 클라우드 서버에 개발 환경 구성 - 어느 Client PC에서나 같은 환경에서 개발할 수 있도록 구성하기 ( Xshell, VScode ,Golang ,Xming )

줄기세포(Stem_Cell) 2021. 11. 14. 02:23

KT 클라우드를 이용했습니다.
클라우드 서버에 ssh 접속을 위해서 방화벽 오픈 및 접속설정을 해주셔야 합니다.

 

>> 환경구성을 시도한 이유

1. 클라우드 서버에서 golang을 개발하고 싶다. -> 어느 PC에서 개발해도, 환경을 동일하게 유지할 수 있다. (물론 비용은 더 비싸다.)
2. Linux에서 vi로 개발하지 않고, VScode IDE를 이용하고 싶다.
3. 코드를 작성하고 바로 App을 재실행하여 서버에 반영할 수 있다.

 

>> 처음 생각한 환경설정 흐름

1. x11 설치 및 관련 패키지 & 설정

2. vscode 설치 및 관련 패키지 & 설정
3. golang 설치 및 관련 패키지 & 설정

------------------------------------

시작

1. Client PC 설정

제가 사용한 PC는 Window 환경이고 11에서 작업하였습니다. (윈10과 같은 방법으로 진행하면 된다고 생각합니다.)

 

1-1. Xshell, Xming 다운로드 & 설치

Xshell 다운로드 및 설치 (google 검색) / 업무용이 아니라면 학생용으로 신청하면 됩니다.

Xming X Server 다운로드 (google 검색)

+ Xming-fonts-setup 도 같이 설치하면 좋습니다.

VcXsrv 다운로드 및 설치 (다운로드 링크: https://sourceforge.net/projects/vcxsrv/ )

(VScode를 X11 Forwarding 으로 사용하려면 Xming 대신 VcXsrv 를 사용해야 한답니다.)

 

1-2. Xshell에 세션에 Xdisplay 터널링 설정

 

1-3. VcXsrv 을 설치하면 생기는 실행파일 (XLaunch) 실행

 

 

 

2. Server X11 설정

 

2-1. ssh X11 Forwarding 설정

([출처] : CentOS 7 Server _ X11 forwarding 설정 가이드 | 작성자 NAVER Cloud Platform)

 

/etc/ssh/sshd_config에서 X11Forwarding 변경

$vi /etc/ssh/sshd_config	

    	AddressFamily any -> AddressFamily inet 로 수정
		X11Forwarding yes
		X11DisplayOffset 10
        X11UseLocalhost no
		UseLogin no


$ systemctl restart sshd		# sshd 재시작

 

2-2. xorg-x11, xclock 패키지 설치 및 확인

$ yum group install "GNOME Desktop" -y
$ yum install xorg-x11-apps -y
$ yum install xorg-x11-xauth -y
$ yum install xorg-x11-server-Xorg -y
$ yum install xorg-x11-utils -y

$ yum install xclock -y			# x11 테스트 용으로 사용 (필수패키지 아님)
$ rpm -qa | grep xorg		# 설치 패키지 확인

xorg-x11-xkb-utils-7.7-14.el7.x86_64
xorg-x11-server-common-1.20.1-5.6.el7_6.x86_64
xorg-x11-server-utils-7.7-20.el7.x86_64
abrt-addon-xorg-2.1.11-57.el7.centos.x86_64
xorg-x11-xauth-1.0.9-1.el7.x86_64
xorg-x11-utils-7.5-23.el7.x86_64
xorg-x11-font-utils-7.5-21.el7.x86_64
xorg-x11-apps-7.7-7.el7.x86_64
xorg-x11-server-Xorg-1.20.1-5.6.el7_6.x86_64

 

2-3. X11 인증기록 파일 생성

$ touch /root/.Xauthority
$ chmod 600 /root/.Xauthority

재부팅

$ reboot

 

2-4. DISPLAY 환경변수 설정 및 xclock 실행

$ vi ~/.bash_profile

	export DISPLAY=localhost:10.0

$ source ~/.bash_profile

$ xdpyinfo		# 결과값이 나와야 함
$ xclock

아래와 같이 뜨면 성공

 

3. VScode (Visual Studio Code) 설치

IDE로는 VScode가 안정성 및 여러 언어를 지원하는 점에서 선택하였습니다.

사실 atom밖에 안써봐서 써보려고 시도해봤습니다.

 

3-1. MS GPG Key 가져오기

$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc 	# sudo를 쓰지않고 root 권한해도 됨

 

3-2. Visual Studio Code 저장소 활성화

yum repo 경로에 vscode repo를 생성하고 아래 내용을 붙여넣는다.

$ vi /etc/yum.repos.d/vscode.repo

[code]
name=Visual Studio Code
baseurl=https://packages.microsoft.com/yumrepos/vscode
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc

 

3-3. 설치

$ yum install code

 

4. VScode 실행

 

4-1. vscode를 사용할 유저 생성

$ groupadd dev -g 1030
$ useradd lango -g dev -u 1030		# golang 개발을 해보려 하니까, user이름은 lango로 했슴다

 

4-2. user에도 DISPLAY 환경변수 설정 및 .Xauthority 파일을 copy

$ cp /root/.Xauthority /home/lango/.Xauthority

$ chown -R lango:dev /home/lango 

$ su - lango

$ vi ~/.bash_profile
	export DISPLAY=localhost:10.0

$ source ~/.bash_profile

 

4-3. xclock test

xclock 명령어로 시계가 뜨는지 확인한다.

$ xclock

 

4-4. code 명령어 실행

$ code

VScode가 GUI로 실행된 것 까지 확인하였습니다.

추후에 Golang 환경설정을 해보겠습니다.

 

 

일반적으로 Server에서 X11을 통해서 VScode를 실행하는 경우보다는

VScode를 Client PC(내PC)에 설치하고, VScode를 원격서버에 연결하는 케이스가 일반적인 것 같습니다.

(VScode에서 Remote Development를 사용하여 원격서버에 접속하는 방법)

 

 

추가로 아래 방법도 진행하면 유저 로그인하여도 .Xauthority 파일 복사없이 사용할 수 있다.

https://novice-data.tistory.com/43

 

[.Xauthority 권한 설정] 모든 유저가 추가 조치 없이 x11 forwarding 사용할 수 있도록 환경설정 하는 방

x11으로 DISPLAY를 어느 유저에서나 사용할 수 있는 방법을 공유해보려 한다. 개발용으로 클라우드 서버에서만 사용하기 때문에 보안을 염두에 두고 하는 방법은 절대 아니다. 나는 root 로그인 정

novice-data.tistory.com

 

 

참조


https://blog.naver.com/n_cloudplatform/221451047036

 

[이렇게 사용하세요!] CentOS 7 Server _ X11 forwarding 설정 가이드

안녕하세요! 네이버 클라우드 플랫폼입니다. 이번 포스팅에서 소개해드릴 내용은 CentOS 버전 'G...

blog.naver.com

https://chhanz.github.io/linux/2021/05/25/yum-groupinstall/

 

[Linux] Yum Group 상세 활용

yum group 관련 명령어 Group Package 를 설치 할 때, 주로 이용하는 명령어 입니다. yum groupinstall , yum groupinfo , yum grouplist 등이 있습니다. 기본 사용법 주로 사용 하는 명령어 몇가지에 대해 알아보자. yu

chhanz.github.io

https://stackoverflow.com/questions/39695166/visual-studio-code-on-linux-xwindow-forwarding/40013437#40013437

 

Visual Studio Code on Linux Xwindow forwarding

My configuration is as follows: OS: DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION="Ubuntu 14.04.4 LTS" NAME="Ubuntu" VERSION="14.04.4 LTS, Trusty Tahr" ID=u...

stackoverflow.com

https://evols-atirev.tistory.com/28

 

원격서버 vscode로 연결해서 작업하기

Microsoft의 visual studio code로 자신의 로컬 컴퓨터의 파일 뿐만 아니라 원격 서버까지 워킹 디렉토리로 삼을 수 있습니다. 이 방법을 사용하면 WSL에도 쉽게 접속해서 사용할 수 있습니다. WSL에 사용

evols-atirev.tistory.com

https://jjeongil.tistory.com/1463

 

CentOS 7 : Visual Studio Code 설치 방법, 예제, 명령어

비주얼 스튜디오 코드(Visual Studio Code)는 마이크로소프트가 개발한 오픈 소스 크로스 플랫폼 코드 편집기입니다. 내장 디버깅 지원, 내장 Git 제어, 구문 강조, 코드 완성, 통합 터미널, 코드 리팩

jjeongil.tistory.com

https://bejerry.tistory.com/4

 

CentOS7에 vscode 설치하기

CentOS에서 간단한 code 작성은 vim을 사용해서 작성할 수 있다. (nano는 필자가 못함.) 하지만 code나 파일의 수가 많아지면 에디터가 보고싶다. window os에선 Eclipse, ATOM, VScode 등 여러 에디터를 접했고

bejerry.tistory.com

 

Comments