'Development/Linux Troubleshooting'에 해당되는 글 5건

  1. [RHEL-based] Install VNC Server on CentOS 7 / RHEL 7
  2. [RHEL-based] Disable Firewalld and use iptables on CentOS 7 / RHEL 7
  3. [RHEL-based] Ubuntu 14.04 root ssh 외부 접근 허용
  4. [RHEL-based] Install Gnome GUI on CentOS 7 / RHEL 7
  5. [RHEL-based] Another app is currently holding the yum lock; waiting for it to exit...




Why ?

Linux/Unix Server에서의 화면을 공유하고 싶을 때, VNC 또는 Xmanager, Xming, TeamViwer 등의 제품이 필요합니다.

그러나, VNC 서버와 클라이언트는 기본적으로 설치되지 않습니다. 

화면을 공유하고 싶을 경우에 VNC 서버를 수동으로 설치해야합니다.


How ?

Server에 GNOME 패키지가 깔려 있을 경우 바로 VNC Server를 설치하지만, 그렇지 않을 경우 우선 GNOME Desktop 도구를 설치 한 후 진행합니다.


Reproduce

    아래와 같이 해결합니다.

    우선, Cent OS 7 버전에 GNOME 패캐지가 없을 경우, 이 글을 참조하여 설치합니다.

    테스트 이므로 방화벽을 모두 해제하고 진행하였습니다. RHEL-based Server에서의 방화벽 해제이 글을 참조하여 진행합니다.


[Linux]

## Step 1: tigervnc server와 X11 Font를 설치합니다.
[user@localhost ~]$ su - root
Password: 
Last login: Fri Oct 10 11:33:57 KST 2014 on pts/1
Last failed login: Tue Oct 14 17:38:16 KST 2014 on pts/1
There was 1 failed login attempt since the last successful login.

[root@localhost ~]# yum install tigervnc-server xorg-x11-fonts-Type1
Loaded plugins: fastestmirror, langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
base                                                                                                                                                                                                                                     | 3.6 kB  00:00:00     
extras                                                                                                                                                                                                                                   | 3.4 kB  00:00:00     
updates                                                                                                                                                                                                                                  | 3.4 kB  00:00:00     
(1/2): updates/7/x86_64/primary_db                                                                                                                                                                                                       | 3.6 MB  00:00:05     
extras/7/x86_64/primary_db     FAILED                                          
http://mirror.oasis.onnetcorp.com/centos/7.0.1406/extras/x86_64/repodata/d3ea3f1d4e6e1b191dcd67d7eff17c8340cfafce3ecfa0bd298953ce6c7c9743-primary.sqlite.bz2: [Errno 14] curl#6 - "Could not resolve host: mirror.oasis.onnetcorp.com; Name or service not known"
Trying other mirror.
(2/2): extras/7/x86_64/primary_db                                                                                                                                                                                                        |  26 kB  00:00:05     
Determining fastest mirrors
 * base: ftp.daum.net
 * extras: ftp.daum.net
 * updates: ftp.daum.net
Package xorg-x11-fonts-Type1-7.5-9.el7.noarch already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package tigervnc-server.x86_64 0:1.2.80-0.30.20130314svn5065.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================
 Package                                 Arch                                Version                                         Repository                              Size
=======================================================================================================================
Installing:
 tigervnc-server                       x86_64              1.2.80-0.30.20130314svn5065.el7                    base                                  199 k

Transaction Summary
=======================================================================================================================
Install  1 Package

Total download size: 199 k
Installed size: 489 k
Is this ok [y/d/N]: y
Downloading packages:
tigervnc-server-1.2.80-0.30.20 FAILED                                          
http://mirror.oasis.onnetcorp.com/centos/7.0.1406/os/x86_64/Packages/tigervnc-server-1.2.80-0.30.20130314svn5065.el7.x86_64.rpm: [Errno 14] curl#6 - "Could not resolve host: mirror.oasis.onnetcorp.com; Name or service not known" B/s |    0 B  --:--:-- ETA 
Trying other mirror.
tigervnc-server-1.2.80-0.30.20130314svn5065.el7.x86_64.rpm                                                                                                                                                                               | 199 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : tigervnc-server-1.2.80-0.30.20130314svn5065.el7.x86_64                                                                                                                                                                                       1/1 
  Verifying  : tigervnc-server-1.2.80-0.30.20130314svn5065.el7.x86_64                                                                                                                                                                                       1/1 

Installed:
  tigervnc-server.x86_64 0:1.2.80-0.30.20130314svn5065.el7                                                                                                                                                                                                                                                                                                                                                                                                      

Complete!

## Step 2: 시스템 서비스를 구성을 위해 /etc/systemd/system/ 에 VNC Server configuration file을 복사합니다.
## 기본적으로 VNC 서버는 590 Port를 사용하지만 현재는 테스트를 위해서 방화벽을 해제하였습니다.
[root@localhost ~]# cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:5.service

## Step 3: Edit the copied file.
## <user> - Real User로 변경합니다.
[root@localhost ~]# vi /etc/systemd/system/vncserver@:5.service

...
...
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l <user> -c "/usr/bin/vncserver %i"
PIDFile=/home/<user>/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target
...
...
## 아래와 같이 변경
...
...
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l user -c "/usr/bin/vncserver %i"
PIDFile=/home/user/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target
...
...

## Step 4: 만약, 방화벽을 사용중이라면 Port Open을 합니다.
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=5905/tcp
[root@localhost ~]# firewall-cmd --reload

## Step 5: Real user (필자는 user)로 switching VNC 서버 패스워드를 지정합니다.
[root@localhost ~]# su - user
Last login: Sat Oct 11 06:33:24 EDT 2014 on :0
ABRT has detected 1 problem(s). For more info run: abrt-cli list --since 1413023633
[user@localhost ~]$ vncserver

You will require a password to access your desktops.

Password:
Verify:
xauth:  file /home/user/.Xauthority does not exist

New 'localhost.localdomain :1 (user)' desktop is localhost.localdomain :1

Creating default startup script /home/user/.vnc/xstartup
Starting applications specified in /home/user/.vnc/xstartup
Log file is /home/user/.vnc/localhost.localdomain:1.log

## Step 6: Root 유저로 VNC 서버 데몬을 reload 하고 VNC Service를 실행합니다.
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl start vncserver@:5.service

## Step 7: VNC Service를 등록합니다. 이제 root로 VNC 서버를 실행 가능합니다.
[root@localhost ~]# systemctl enable vncserver@:5.service
ln -s '/etc/systemd/system/vncserver@:5.service' '/etc/systemd/system/multi-user.target.wants/vncserver@:5.service' 

[Remote Desktop - Windows]

Fig.01: 우선, VNC Viwer를 운영체제에 맞게 다운로드(https://www.realvnc.com/download/viewer/) 합니다.


Fig.02: 다운로드 파일을 압축을 풀고, VNC 서버가 있는 IP로 접속합니다.

여기서 포트는 5905(default) 또는 5 라고 기입합니다.


Fig.03: 첫 접속시 경고 메시지가 나타나는데, Continue 선택하고 진행합니다.


Fig.04: 사전에 VNC Password를 입력합니다.


Fig.05: Target Server에 로그인 합니다.


Fig.06: VNC Viwer를 통해 성공적으로 접속하여 화면을 공유할 수 있습니다.



저작자 표시 비영리 동일 조건 변경 허락
신고




Why ?

CentOS 7 부터 명령어가 이전의 CentOS와 많이 변경되었습니다. 서버 테스트 작업을 할 때  Port 막힘 현상 등으로 테스트 시간이 지체 될 경우, 잠시 방화벽을 해제 합니다.


How ?

CnetOS / RHEL 7은 완전히 systemd 기반으로 작동됩니다. 그럼 방화벽을 비활성화 하고 iptables 서비스를 사용하기 위해 몇 systemd 관련 명령어를 사용해야 합니다.


자세한 내용은 RHEL Documentation 을 참조하세요.


Reproduce

    아래와 같이 해결합니다.

## Step 1: 방화벽을 해제합니다.
[root@localhost ~]# systemctl mask firewalld

## Step 2: 방화벽을 정지합니다.
[root@localhost ~]# systemctl stop firewalld

## Step 3: iptables service 관련packages를 설치합니다.
[root@localhost ~]# yum -y install iptables-services

## Step 4: boot시 service를 시작합니다.
[root@localhost ~]# systemctl enable iptables

## 만약 ip6tables 서비스를 사용하지 않을 경우, skip 합니다.
[root@localhost ~]# systemctl enable ip6tables

## Step 5: iptables services를 시작합니다.
[root@localhost ~]# systemctl start iptables

## 만약 ip6tables 서비스를 사용하지 않을 경우, skip 합니다.
[root@localhost ~]# systemctl start ip6tables

## 전체 서비스를 disable할 경우 아래와 같이 진행합니다.
[root@localhost ~]# systemctl list-unit-files | grep fire
firewalld.service                           enabled
 
[root@localhost ~]# systemctl list-unit-files | grep iptables
iptables.service                            disabled
 
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl stop iptables
[root@localhost ~]# systemctl stop ip6tables
[root@localhost ~]# systemctl disable firewalld
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
rm '/etc/systemd/system/basic.target.wants/firewalld.service'
[root@localhost ~]# systemctl disable iptables
[root@localhost ~]# systemctl disable ip6tables
 
[root@localhost ~]# systemctl list-unit-files | grep fire
firewalld.service                           disabled
[root@localhost ~]# systemctl list-unit-files | grep iptables
iptables.service                            disabled

저작자 표시 비영리 동일 조건 변경 허락
신고




Why ?

Ubuntu 14.04 버전을 설치하고 PuTTY, SecureCRT 등 SSH 툴로 접근 할 경우 root user password를 설정하여도 접근이 불가합니다. (기존 12.04 버전까지는 password 만 설정해주면 접근이 가능하였습니다.)


How ?

apt-get으로 ssh를 설치하고 sshd 환경설정 파일을 수정해야 합니다.


Reproduce

    아래와 같이 해결합니다.

## 일반 유저에서 root계정의 비밀번호 설정
user@ubuntu-virtual-machine:~# sudo passwd root

## ssh server install
root@ubuntu-virtual-machine:~# agt-get install openssh-server

## /etc/ssh/sshd_config  file editing
...
# Authentication:
LoginGraceTime 120
#PermitRootLogin without-password
PermitRootLogin yes
StrictModes yes
...

## service restart
root@ubuntu-virtual-machine:~# service ssh restart

저작자 표시 비영리 동일 조건 변경 허락
신고




Why ?

RHEL 계열 중 Cent OS 7 최소 버전을 설치 한 경우 GUI를 지원하지 않습니다. 


How ?

RHEL 계열인 Cent OS 7 최소 버전을 설치 후 Gnome GUI를 추가 설치해야 하는 경우 yum 작업으로 간단하게 해결합니다.

참고로, /etc/inittab file은 더이상 run level 변경하는데 사용되지 않습니다.


Reproduce

    아래와 같이 해결합니다.

## Step 1: Gnmome GUI 를 설치합니다.
[root@localhost ~]]# yum groupinstall "GNOME Desktop" "Graphical Administration Tools"

## Step 2: 부팅시 GUI가 자동으로 Enable 되게 합니다.
[root@localhost ~]]# ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target


저작자 표시 비영리 동일 조건 변경 허락
신고




Why ?

Yum 작업 중 이런 에러가 발생할 경우는 이미 yum process가 진행 중인데, 다시 yum process를 실행하였을 경우 발생합니다.


How ?

yum process 작업이 완료될 때 까지 대기하는 하거나, 진행 중인 yum process 작업을 kill하고 다시 yum job process execute 합니다.


Reproduce

    아래와 같이 해결합니다.

## 문제 발생
[root@jjlee:~]#yum install -y httpd httpd-devel mod_ssl ruby-devel rubygems gcc-c++ curl-devel zlib-devel openssl-devel 
Loaded plugins: fastestmirror, refresh-packagekit, security
Existing lock /var/run/yum.pid: another copy is running as pid 13727.
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: PackageKit
    Memory :  39 M RSS (348 MB VSZ)
    Started: Wed Sep 24 00:27:47 2014 - 00:32 ago
    State  : Sleeping, pid: 13727

## 진행중인 yum process 확인
[root@jjlee:~]#ps -ef | grep yum
root     13727 13726  2 00:27 ?        00:00:00 /usr/bin/python /usr/share/PackageKit/helpers/yum/yumBackend.py get-updates none
root     13732  2474 10 00:28 pts/0    00:00:00 grep yum

## kill all yum process
[root@jjlee:~]#kill -9 13727
[root@jjlee:~]#ps -ef | grep yum
root     13734  2474  0 00:28 pts/0    00:00:00 grep yum

## yum job process execute
[root@jjlee:~]#yum install -y httpd httpd-devel mod_ssl ruby-devel rubygems gcc-c++ curl-devel zlib-devel openssl-devel 
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: ftp.neowiz.com
 * extras: ftp.neowiz.com
 * updates: ftp.neowiz.com
Setting up Install Process
Package httpd-2.2.15-31.el6.centos.x86_64 already installed and latest version
Package gcc-c++-4.4.7-4.el6.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package facter.x86_64 1:2.2.0-1.el6 will be installed
--> Processing Dependency: ruby >= 1.8.7 for package: 1:facter-2.2.0-1.el6.x86_64
--> Processing Dependency: /usr/bin/ruby for package: 1:facter-2.2.0-1.el6.x86_64

저작자 표시 비영리 동일 조건 변경 허락
신고