Tuesday, January 08, 2019

Canonical Livepatch service

其實我沒接觸過Canonical Livepatch service,直到公司內部有同事在internal meeting裡面介紹後,我才發現到這個功能對於廣大的IT人員將會是一個非常好用的功能,而且某些程度上還可以減少些出錯的機會。

關於Canonical Livepatch service,我個人覺得它最主要的目的就是可以讓Linux kernel安裝上一些fixes但是系統不需要重新開機!而且kernel也不需要整個升級,相信對於一些系統必需保持在某個版本的kernel,或是不允許重新開機跟system downtime很要求的環境,這個功能確實是非常實用!

Canonical livepatch service其實在Ubuntu 14.04就開始支援了,但當時只支援CLI去配置Canonical livepatch service,不過從18.04之後,在GUI就可以很簡單的開啟以及使用它。

關於CLI如何使用,可以參考以下的連結:
https://blog.ubuntu.com/2017/06/06/canonical-kernel-livepatch-service-now-available-for-ubuntu-14-04-lts
https://www.ubuntu.com/livepatch 

GUI的話可以參考下面幾個步驟:
1. Software & Updates -> Updates.













2. 點選Sign in button.







3. 輸入你的Ubuntu SSO帳號(Ubuntu One account)。











4. 接著輸入Ubuntu 2 factor authentication。














如果順利的話,你可以看到Sing in button變成Sing Out,順便用CLI檢查一下。















所以當Sing in成功後,系統會從snap store自動安裝canonical-livepatch,相關的token也會自動抓取下來,比起14.04 or 16.04來說真的方便許多!

最後這邊要注意一下,Canonical livepatch service預設一組Ubuntu One帳號只允許3台機器使用,如果你是企業用戶的話,那可以考慮Ubuntu advantage來支援更多的機器。

Thursday, January 03, 2019

在Ubuntu 18.04 架設VNC Server

很久前有筆記過如何在CentOS7上架設VNC Server,這幾天實做了一下VNC Server在Ubuntu 18.04上。

以下就簡單紀錄一下步驟。

Steps:
1. Install VNC Server (遠端桌面環境將採用xfce):
$ sudo apt-get install vnc4server xfce4 xfce4-goodies
2. 建立VNC server的配置檔與user密碼:
$ vncpasswd
$ vim.tiny ~/.vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4 
$ chmod 755 ~/.vnc/xstartup
3. 手動啟動VNC Server:
這個時候我們先測試看看VNC Server可不可以正常工作。






如果有看到以上類似的畫面,那說明VNC Server已經啟動並且listen在TCP port 5901。但是請注意,預設它會只listen在localhost,這個等一下在建立systemd startup script的時候,我們可以修改它。
4. 建立systemd startup script: 
 做這個設定的最大好處是將來系統重開機後,我就不需要每次都要手動啟動VNC Server了。
4.1 建立VNC Server script file:
 $ sudo vim.tiny /etc/systemd/system/vncserver@.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
User=u
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -localhost no -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :%i -localhost no -geometry 1440x900 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target
剛剛有提到預設VNC Server只會listen在localhost:5901,但透過參數-localhost no可以讓它listen在0.0.0.0也就是all net的概念。 
4.2 手動reload systemd: (每次有新增或修改systemd的startup script file後,記得此步驟)
$ sudo systemctl daemon-reload
4.3 透過systemd啟動VNC Server:
$ sudo systemctl start vncserver@1.service
4.4 在系統開機時,自動啟動VNC Server:
$ sudo systemctl enable vncserver@1.service
假設一切順利的話,輸入相關的命令後,應該可以看到類似的畫面。








 5. 遠端測試: (採用Ubuntu內建的Remmina remote desktop client)