RHEL8 重置 root 密碼

因為查了第二次還第三次,所以紀錄下來。

步驟如下:

  1. 開機時,在 grub 開機選單畫面按上或下,避免自動進入預設項目開機,然後在第一個項目按下 e 來編輯。
  2. 在 linux 那一行的最後加入 rd.break 之後,按下 ctrl + x 繼續開機
  3. 接著會進入 console ,這時輸入下面指令
mount -o remount,rw /sysroot
chroot /sysroot
passwd
touch /.autorelabel
exit
exit

做到這邊,印象中會重開機或繼續開機程序,總之最後就完成了。

參考資料

如果你有 Red Hat developer account 的話,應該可以看到這篇:RESETING THE ROOT PASSWORD

HAProxy的VirtualHost

Apache / Nginx 很常用到的情境就是同個 Port 會有不同的站台,這時會使用到 VirtualHost 。

那 HAProxy 可以這樣做嗎?利用 Google 找了一下,發現是可以,主要是使用 ACL 的設定。

關鍵的設定是寫在 frontend 裡 (設定摘錄自 HAProxy – route by domain name | Sean McGary)

frontend http-in
        bind *:80

        # Define hosts
        acl host_bacon req.hdr(host) -i ilovebacon.com
        acl host_milkshakes req.hdr(host) -i bobsmilkshakes.com

        ## figure out which one to use
        use_backend bacon_cluster if host_bacon
        use_backend milshake_cluster if host_milkshakes

利用 acl + hdr(host) 來判斷 HTTP header 裡的 Host ,接著再使用 use_backend … if … 來決定使用哪一個 backend。

查到以後,我試了好一陣子,都試不出來,後來才搞懂,當使用這個來判斷 header 時,mode 必須要改為 http,如果 mode 是 tcp,那麼是沒作用的。同理,當要用到 https 上時,也會不行,因為連線的內容被加密,HAProxy 無法解讀內容,也就無法得知 header。

HAProxy 的 backend 裡可以改寫 request 的 header,方法如下

backend ocp-apps-http
    mode http
    http-request del-header Host
    http-request set-header Host petclinic.apps.example.com
    server node1 petclinic.apps.example.com:80

透過這個,就可以達到類似 reverse proxy 的效果。

今天試下來,大致對 Apache / Nginx / HAProxy 的定位有了一定程度的了解。HAProxy 有兩個 mode:tcp / http,tcp 適用於 SSL pass-through 跟純 TCP 傳輸的情況,這時是由 backend 來處理 SSL 憑證;http 可以視為跟 Apache / Nginx 相似的情況,也可以掛 SSL 憑證。

簡單的說,Apache / Nginx 並不能完全取代 HAProxy,反之亦然。

centos2rhel

工作有需要幫客戶將 CentOS 轉換到 Red Hat Enterprise Linux,試驗了一下。這個轉換是有條件的,必須要滿足前置條件,才能順利做轉換。

我用的環境是 CentOS 8.3 ,用以下的 playbook 來安裝 Red Hat 所提供的 convert2rhel 工具,先新增檔案,命名為 install-convert2rhel.yml ,然後把下面的內容貼進去。

---
- name: Convert CentOS to RHEL
  hosts: all
  become: yes

  tasks:
    - name: Get GPG key
      get_url:
        url: https://www.redhat.com/security/data/fd431d51.txt
        dest: /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
        mode: '0440'

    - name: Get repo
      get_url:
        url: https://ftp.redhat.com/redhat/convert2rhel/8/convert2rhel.repo
        dest: /etc/yum.repos.d/convert2rhel.repo
        mode: '0440'

    - name: Get convert2rhel
      yum:
        name: convert2rhel
        state: latest

接著執行:ansible-playbook -i <your_ip>, -u root -k install-convert2rhel.yml

目的主機內就有 convert2rhel 指令了,先依照說明來執行看看

convert2rhel --username <redhat_account> --password <redhat_password> -a

執行結果會說需要把 CentOS 升級到 7.9 或是 8.4 才可以進行轉換,所以用 yum update -y 將 CentOS 8.3 升級到 8.4

升級完成,重新開機,再來執行一次。我這次是遇到 Python 處理編碼發生錯誤,改用

LANG=C convert2rhel --username <redhat_account> --password <redhat_password> -a

接著可以繼續往下了,依照指示回答問題以後,就順利轉換到 RHEL 了。(懶得回答可以加上 -y)

man convert2rhel 可以看到使用說明,講的還蠻清楚的。指令有提供了 –disablerepo / –enablerepo 可以關閉或啟用可能影響轉換的 repo,也可以使用 –no-rpm-va 來跳過檢查,也有提供 –activationkey 來支援 Red Hat Satellite,也可以使用 –no-rhsm 來避免註冊到 Red Hat 。

我自己是覺得使用這類的工具其實蠻需要經驗,如果主機上的軟體套件很單純的話,就還好,如果是有引用到第三方的 repo,可能就需要耐心來做狀況排除。同時,也需要事後的檢查,來確保上面的服務跟轉移前一樣。

電影流水帳(2021/04/11~2021/04/30)

WED/THURS - MBC - PLAYFUL KISS  장난스런 키스 (2010)
Jung So-Min

아빠는 딸

講父女交換身體的故事,故事雖然是老的套路,可是有趣的就是在於導演跟編劇怎麼去講這故事。

故事大致就是父女兩人感情不太好,因為車禍而交換了身體,女兒只好代替父親去上班,父親代替女兒去上學。兩人在各自體驗了各自的生活以後,想法有了轉變,也能去體會彼此的處境了。

最後就是父女恢復了原狀,相處變得融洽了,皆大歡喜。

나쁜 녀석들

故事有點像自殺特攻隊,警察徵召了三個罪犯一起來追查一個案子。除了朴雄哲以外,其他人都是看著能減刑的份上來幫忙查案。只是查到後來,他們的心境也有了很大的轉變,也想繼續透過非正式的管道來懲奸除惡,於是這樣一個非正式的編隊成立了。

後來查了維基百科才知道,這故事是韓劇的精華版 (精減版?),蠻好看的。

電影流水帳(2021/04/01~2021/04/10)

https://www.flickr.com/photos/thestarsfact/34571396944/in/photolist-UEXrS1-jGaUAV-uXjxub-8vHr3u-2jUeSgr-4jRDyg-9PwThZ-crvMWj-5EkwkA-5EgePt-5EgeXT-5Ekwys-f6HXiP-6x3JQR-bJ12MX-5EgeiK-a3h6v6-aS6gb2-yfw72F-pfJK51-9PzJe1-9PzJ1Q-9PzJ7G-uiBD-uiC6-4jRDrc-4jVFko-5DqjPs-CSnfP5-5HGB53-5DQJs1-ehRgC-ehReW-ehRku-ehRiu-ehRn4-5HGAK5-og8GWB-8ghF8P-pgfV8C-uhTfw7-veTQut-vfdiwV-ui43FT-uXjxJu-uhTfBY-uXjxou-uXjxEw-vfdinr-ySpM2H
  • Angel Has Fallen (IMDB, Wikipedia),台譯:全面攻佔3-天使救援
  • Seven years in Tibet (IMDB, Wikipedia),台譯:火線大逃亡。

Angel Has Fallen

故事跟前面兩集一樣是 Mike 保護總統的故事,我是從大約三分之一的地方切進去看的。

這集 Mike 變成了被追殺的對象,因為他被誤會為刺殺總統的人。Mike 在逃脫後,去找了跟自己疏遠的父親 Clay ,在父親的幫忙下展開調查,最後發現陷害他的人竟然是他的朋友 Wade。於是他對特勤局提出警告,說會有人再次刺殺總統。接著他在被通緝的情況下,潛伏回總統身邊,取回總統信任,並且對 Wade 展開反擊。最後跟 Wade 這群傭兵火拼,把他們幹掉。

Seven years in Tibet

這部電影挺有意思的,引發我去看了維基百科。看完以後,發現這故事爭議很多,有些是史實,有些是假的。

Heinrich 是奧地利人參加了德國的登山隊,前去攀登喜馬拉雅山。Heinrich 在登山隊認識了 Peter,一起去爬山的時候,Heinrich 年輕氣盛,兩人有了些嫌隙,總之,沒有順利登頂。整個登山隊下山以後,因為二次大戰結束的緣故,被英軍俘虜。一行人被英軍關了幾年,才順利一起逃了出去。逃出去以後,他們輾轉到了西藏,在此生活。生活了幾年之後,Heinrich 才回到奧地利去。回去的時候,人事全非,妻子改嫁,離開時,妻子已經懷孕,肚子裡的孩子已經長大了。

雖然故事有爭議,不完全符合史實,但可以從故事看到一個人心性上的變化,這點是蠻讓人可以去思考跟反省的。

電影流水帳(2021/03/16~2021/03/31)

Valentins 201130-3
消失的情人節

消失的情人節

這是個關於時間的故事,在講快跟慢。陳玉勳導演很會拍這種都市寓言的故事。

阿泰跟曉淇在小時候因為住院而結識,阿泰一直很感謝曉淇的幫忙。隨著時間過去,兩人長大,阿泰成了公車司機,曉淇後來忘了阿泰,在郵局上班。

曉淇是個郵局的員工,他發現情人節不見了,開始調查…故事開始倒轉到前幾天開始講起…

這天下班,曉淇回家穿過公園時,遇到了文森,被文森給電到。隔天文森到郵局找她,曉淇以為文森在追她,想說桃花總算開了,很開心的暈車了(陷入愛情)。但文森只是個愛情騙子,他只想騙錢來還債。阿泰得知文森只是騙子,想幫助曉淇,卻被打到頭腫起來。到了情人節當天,阿泰的能力意外發動,所有人的時間都停了下來。阿泰載著曉淇回到南部玩了一圈,拍了許多照片。在回程時,阿泰遇到了一個沒靜止的人,他很驚訝,讓他上車後,才知道時間靜止的原因,也才知道他是曉淇的爸爸。

回到台北,阿泰送曉淇回家。情人節這天就這麼過了,隔天,曉淇發現情人節不見了,就開始找,循著照片、鑰匙線索找到嘉義。後來就請調到嘉義的郵局,等著人上門來寄信。阿泰在情人節隔天去郵局寄信後,就出了車禍,住到了醫院,直到一年後才醒來,到郵局寄信。這時兩人相認,阿泰送上豆花,兩人相約下班後碰面,阿泰要把事情說清楚…

同學麥娜絲

原來有點不想看的,但耐著性子看完前頭之後,接著就一路看完了。我滿喜歡這部電影的,故事乍看之下很脫離常軌、有點荒謬,但卻很符合市井小民的生活,帶有淡淡又無奈的黑色幽默,很好看。
故事從碎碎念的旁白開始,開始介紹著自己 (導演) 與四個主角添仔、罐頭、閉結跟電風的生平與生活:

  • 添仔是個導演,拍拍廣告、宣導片之類的,後來被議員選中當影子議員,參與選舉。
  • 罐頭是時運最差的,打打零工,有一搭沒一搭的,在幫市公所作調查時,遇到以前當作女神的女同學。
  • 閉結是扎紙師傅,看著他遇到了解他的好女人,奶奶病情好轉,結巴也好了。本來以為會有好結局的,卻遇到兇神惡煞打錯人,就這樣走了,很讓人扼腕。
  • 電風是個保險經理,盡力挺主管,但升遷都輪不到他,結婚以後,在處理火災 case 時,氣不過,過去的不滿一下子爆發開來,就丟辭呈走人了。

故事的最後是閉結的葬禮,添仔遲到,祭拜完拜了票,他的態度讓兩個好友氣不過,揍了他,連導演都下來補刀,故事就這樣結束了。

  • 幾個女配角:彩樺姊、朱芷瑩、洪小鈴、鄭宇彤、潘慧如也都演的很好,跟男主角旗鼓相當,如果少了他們,可能就沒那麼好看。
  • 潘彗如真的是女神,看到她的時候,心裡都會「哇」的一聲,會覺得罐頭把她當女神是理所當然。

Linux 改 hostname

目前大部分的 Linux 發行版應該都有 hostnamectl 指令了,用這個指令就可以去修改。

hostnamectl set-hostname <your-hostname>

昨天遇到一個怪狀況,怎麼改都改不了,請教 Google 大神以後,才知道 cloud-init 也有關係。

遇到這狀況,有兩個方法:

  1. 把 cloud-init 服務給關掉:systemctl disable cloud-init
  2. 修改 /etc/cloud/cloud.cfg ,把裡面的 preserve_hostname false 改為 preserve_hostname true

套用其中一種方法以後,重新開機,這樣就行了。

順便紀錄以下我以前怎麼改的,以前改要做這幾個步驟:

  1. 修改 /etc/hostname 這個檔案裡的內容
  2. 修改 /etc/hosts 裡的對應

改完以後,再重新開機。

電影流水帳(2021/03/01~2021/03/15)

  • Game night (IMDB, Wikipedia),台譯:遊戲夜殺必死。
  • Fast & Furious Presents: Hobbs & Shaw (IMDB, Wikipedia),台譯:玩命關頭-特別行動。

Game night

Max 跟 Annie 因愛玩遊戲而相識,並結婚。婚後還是喜歡玩遊戲,他們常常會找鄰居跟好友一起來玩。Max 有個愛炫的哥哥 Brooks,Max 不喜歡他,不過欠咖的時候,還是會找他來。鄰居 Gary,本來是會找他的,但在他太太離開他之後,就不敢再找他了。

這天他們又辦了一場 Game night,在回家的時候遇到 Gary,Gary 問他們是不是要 Game Night,Max 跟 Annie 連忙說不是,之後朋友們偷偷摸摸的進了 Max 家裡。Brooks 遲到了,一如往常的愛炫,眾人雖然覺得反感,卻也算了,就繼續玩。沒多久,有黑衣人進來搶劫,眾人想說,這應該就 Brooks 準備的驚喜吧,就配合著玩。Brooks 被黑衣人捉了,眾人就開始去找線索,想要找到遊戲的答案。結果玩的過程裡發現,這是玩真的啊。隨著遊戲的進行,又牽涉出更多意外的事情。

到最後,Max 跟 Annie 把之前不能懷孕的事情說開了,跟哥哥 Brooks 的事情也說開了。Brooks 為什麼被黑衣人綁走,是因為他拿了保加利亞人的名單。至於 Gary ,他也是搞鬼的一員,他早就知道 Max 不會找他參加 Game night,所以反過來設局去玩他們。

Fast & Furious Presents: Hobbs & Shaw

這集我挺喜歡的,男主角們很鬧,女主角很正,要動作有動作,要笑點也有笑點,很適合放輕鬆看的動作片。

Hattie Shaw 參與了一次護送病毒的行動,但行動卻被一個異乎常人的人 Brixton 破壞,Hattie 迫不得已只好把病毒打到自己身上,然後逃走。

Luke 跟 Deckard 分別收到消息,要去找 Hattie 。花了一番功夫找到之後,得知了 Hattie 身上有病毒,需要找儀器將病毒取出,可是這個儀器只在敵人的陣營裡有。三人必須要合作,可是 Luke 跟 Deckard 之前就看不對眼,並不願意合作。可是礙於 Hattie,只能聯手。在這過程裡,兩人從相互卡來卡去,到後來惺惺相惜,能相互合作。

三人後來逃回 Luke 老家,薩摩亞,靠著家族的力量備戰,最後終於打敗 Brixton,也順利取出病毒,讓世界免於一場危機。

電影流水帳(2021/02/16~2021/02/28)

https://flic.kr/p/RbRaQ8

Chef

原本任職於餐廳的主廚 Carl 因為美食評論家的關係跟老闆意見不合,一氣之下就離職了。後來,在前妻的鼓勵下,半推半就地決定去做餐車。他的兒子 Percy 原本跟他感情不是很好,但因為媽媽在忙,就只好跟著爸爸一起。Carl 跟 Percy 就從整理餐車開始一起工作,後來 Carl 的前同事 Martin 也來一起加入,等到整理好餐車,餐車就開張啦。這餐車的生意因為兒子 Percy 幫忙在 Twitter 上宣傳,聲名遠播,他們一路從邁阿密做生意,做回洛杉磯。餐車生意興隆,父子倆的感情也愈來愈好。到了最後回到洛杉磯做生意,Carl 看到之前吵翻的美食評論家來買他做的三明治,就下車去找他,想要理論。兩人講講以後,盡釋前嫌,原來嫌貨人就是買貨人,這個美食評論家其實默默在支持他,甚至還跟他談了贊助計畫。Carl 真的開了餐廳,做他想做的料理。

Rise of guardian

昨天早上在 HBO 看了 Rise of guardian,以前沒特別想看,意外看到時,覺得挺不錯的,是很棒的勵志故事。故事是講傑克冰人如何加入 Guardian 的故事,Guardian 除了守護孩子不被夢靨侵擾之外,同時孩子們也是他們力量的來源。每隔一段時間,夢靨會出現,守護者也會多一個新成員,這次的新成員就是冰人。一開始傑克冰人並不被接納,成員裡除了睡魔以外,都覺得他是個麻煩人物,只會搗亂。可是偏偏月亮選擇了他,只能好好跟他說明。隨著故事的推展,傑克冰人慢慢的發現了自己的使命。到了故事的最後,他成為 Guardian 的一員,跟夥伴們還有孩子們一同打敗了夢靨。

自製GameToGo

GameToGo 是個很方便的產品,讓你可以在 MBP 上使用 Windows 10 ,又可以省掉許多麻煩。

本來是打算買一個的,後來上網找了一下,找到這篇:在 Mac 下,如何安裝 BootCamp WIN10 到外接硬碟(製作自己的 GameToGo) ,看完,評估了好一會兒之後,就決定來照著做一次。手邊雖然有外接裝置,但沒有夠快的,所以就下單買了一個外接 SSD。

文章裡前面提到 MacOS 的磁碟分割軟體不好用,建議用其他的磁碟分割軟體來做。自己試了一次,發現真的不行。後來我用的方法是這樣:

  1. 使用命令列工具 diskutil 來做分割:diskutil partitionDisk disk2 GPT exFAT windows 250Gi exFAT data R
  2. 使用 iBoysoft NTFS for Mac 來將分割區格式化為 NTFS

解說一下 diskutil 那行:

  • partitionDisk: 表示要做磁碟分割
  • disk2: 是指對第幾個磁碟,這可以用 diskutil list 來看。
  • GPT:表示是做 GPT 分割,這同時也會建出一個 EFI 分割區。
  • exFAT windows 250Gi:exFAT 是分割區格式,windows 是分割區的名稱,250Gi 是分割區大小,這可以用 %,例如 50%
  • exFAT data R :exFAT 是分割區格式,data 是分割區的名稱,R 表示剩下的空間都分配給這個分割區。

分割完以後,後續的基本上就照做就可以。安裝完畢,視窗並不會關閉,就只是一片黑,這時候只要關閉視窗即可。

然後重新開機 MacOS,等到重開機的時候,會遇到安全性問題,這部份就要照 MacBook 用隨身碟執行 Windows 10:Windows To Go、WinToUSB 裡的「安全性設定不允許此 Mac 使用外部啟用磁碟」這一節去做。

  • command + R 進入復原模式,但不要選畫面上的項目,而是要選上方選單裡的「開機安全性工具程式」,然後選「無安全性」跟「允許從外部或可卸除式媒體開機」。按 X 關閉後,選左上方的「啟用磁碟」,選到要開機的磁碟,按「重新開機」按鈕即可。
  • 之後有插上外接裝置要重新開機時,要按住 Options ,再選磁碟。
  • 準備好 USB 有線滑鼠跟鍵盤,以備不時之需。

這時候就可以繼續安裝 Windows 的步驟了,最後再裝上驅動程式即可。