728x90

https://1d1cblog.tistory.com/456를 보고 오시는 것을 추천드립니다.

 

[스마트홈 구축 프로젝트] 1. AWS EC2 개발환경 세팅(3)

https://1d1cblog.tistory.com/455에 이어 VNC 세팅을 하려고 합니다. [스마트홈 구축 프로젝트] 1. AWS EC2 개발환경 세팅(2) [스마트홈 구축 프로젝트] 1. AWS EC2 개발환경 세팅(1) 에 이어 ssh 접속을 시도해..

1d1cblog.tistory.com

이전 포스팅에서 테스트 시에 vncsever에 localhost no 옵션을 주고 실행하여 테스트 했었습니다.

 

localhost 옵션은 외부에서도 접속이 가능하게 해주는 옵션인데 no 값을 주어 다른 호스트에서도 접근이 가능하도록 해줘야 합니다.

텍스트 에디터를 통해 /etc/vnc.conf 파일에 $localhost = "no"; 항목을 추가해줍니다.

위 설정을 추가하면 vncserver 실행 시 localhost 옵션을 설정하지 않아도 외부에서 vnc 접속이 가능해집니다. 우리는 여기서 ec2의 사용자 데이터를 사용하려고 합니다. 사용자 데이터를 사용하면 인스턴스가 다시 시작될 때마다 스크립트를 실행할 수 있습니다.

 

먼저 cloud-init의 최신 버전이 설치되어 있는지 확인합니다.

설치가 되어있지 않다면 cloud-init을 설치해 줍니다.

apt-get install -y cloud-init

ec2 인스턴스의 사용자 데이터에 스크립트를 넣어줍니다. 사용자 데이터를 편집하기 위해서는 인스턴스를 중지시킨 후 우클릭 > 인스턴스 설정 > 사용자 데이터 편집으로 들어갑니다.

위 화면에서 새 사용자 데이터 > 사용자 데이터를 텍스트로 수정을 체크 후 아래 코드를 입력 후 저장합니다.

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
/bin/echo "Hello World" >> /tmp/testfile.txt
--//--

추가로 필요한 명령이나 쉘을 #!/bin/bash 와 --//-- 사이에 입력합니다.

이제 다시 인스턴스를 시작 후 제대로 적용되었는지 확인합니다.

제대로 적용되었습니다. 이제 vncserver를 자동 실행시켜보기전에 먼저 재부팅시 vncserver가 활성화가 되어 있는지 확인해 보기 위해 vncserver -list를 입력해 보겠습니다.

재부팅 시 vncserver가 실행되어 있지 않았고 이제 사용자 데이터에 vncserver 관련 명령어를 추가합니다.

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
su ubuntu -c "/usr/bin/vncserver"
--//--

vncviewer로 접속해보니 접속은 되는데 아래처럼 체크박스만 나옵니다.

이럴 때는 ~/.vnc/xstartup 파일을 아래처럼 수정합니다. (https://askubuntu.com/questions/1205687/ubuntu-18-04-vnc-grey-screen)

 #!/bin/sh
 autocutsel -fork
 xrdb $HOME/.Xresources
 xsetroot -solid grey
 export XKL_XMODMAP_DISABLE=1
 export XDG_CURRENT_DESKTOP="GNOME-Flashback:Unity"
 export XDG_MENU_PREFIX="gnome-flashback-"
 unset DBUS_SESSION_BUS_ADDRESS
 gnome-session --session=gnome-flashback-metacity --disable-acceleration-check --debug &

728x90

+ Recent posts