2024年4月3日 星期三

【IT Notes】RHCE測驗第四題 INSTALL A COLLECTION

Create a playbook called /home/student/ansible/packages.yml that:

  • Installs the php and mariadb packages on hosts in the devtest, and prod host groups

  • Installs the RPM Development Tools package group on hosts in the dev host group

  • Updates all packages to the latest version on hosts in the dev host group


一.解題過程:

[student@workstation ansible]$ touch packages.yml
[student@workstation ansible]$ vim packages.yml 

---

- name: install packages
  hosts: dev,test,prod
  tasks:
    - name: install php and mariadb
      dnf:
        name: "{{ item }}"
        state: present
      loop:
        - php
        - mariadb
    - name: install devtools on host dev
      dnf:
        name: rpmdevtools       
\\考題這裡要下載的是'@RPM Development Tools',不過我沒有這包套件,就改成官方的rpmdevtools,應該也是類似的東西
        state: present
      when: ansible_hostname in groups.dev
    - name: upgrade all packages on host dev
      dnf:
        name: '*'
        state: latest
      when: ansible_hostname in groups.dev

[student@workstation ansible]$ ansible-playbook -C packages.yml   \\測試此命題能否運作


[student@workstation ansible]$ ansible dev -m shell -a 'rpm -qa | grep mariadb'
[student@workstation ansible]$ ansible dev -m shell -a 'rpm -qa  | grep php'
\\驗證dev節點是否有安裝完畢

回傳訊息是這樣就表示安裝成功

二.恢復解題前的環境

[student@workstation ansible]$ vim 04-lab-collection-stop.yml
---
- name: remove packages
  hosts: dev,test,prod
  tasks:
    - name: remove php mariadb
      yum:
        name: "{{ item }}"
        state: absent
      loop:
      - php
      - mariadb
    - name: remove packages groups
      yum:
        name: "rpmdevtools"
        state: absent
      when: inventory_hostname in groups['dev']

- name: remove package.yml
  hosts: 127.0.0.1
  tasks:
    - name: remove package.yml
      file:
        path: /home/student/ansible/packages.yml
        state: absent



【IT Notes】RHCE測驗第三題 INSTALL A COLLECTION

Install the following collection artifacts available from http://example.classroom.com/materials to workstation as the user student

  • redhat-rhel_system_roles-1.16.2.tar.gz

  • ansible-posix-1.4.0.tar.gz

  • community-general-4.3.0.tar.gz

The collections should be installed into the default collections directory /home/student/ansible/mycollections


【題前說明】
 這題在RHCE8是沒有的,以前的roles和collections只要用指令yum install rhel-system-roles就幫我都安裝好了,但RHCE9就等要全部手動處理,如果這題做不出來的話,後面許多題目也就沒法繼續進下去。

一.解題過程:


[student@workstation mycollections]$ cd ~/ansible/mycollections
[student@workstation mycollections]$ touch requirements.yml
[student@workstation mycollections]$ vim requirements.yml


---
collections:
  - name: http://example.classroom.com/materials/ansible-posix-1.5.4.tar.gz
  - name: http://example.classroom.com/materials/community-general-7.3.0.tar.gz
  - name: http://example.classroom.com/materials/fedora-linux_system_roles-1.53.4.tar.gz


[student@workstation ansible]$ ansible-galaxy collection install -r mycollections/requirements.yml 
\\執行ansible-galaxy collection

[student@workstation mycollections]$ ll ansible_collections \\驗證collections是否安裝完畢



二.恢復解題前的環境

[student@workstation ansible]$ vim 03-lab-collection-stop.yml

- name: remove mycollections
  hosts: 127.0.0.1
  tasks:
    - name: remove mycollections
      file:
        path: /home/student/ansible/mycollections
        state: absent







2024年3月27日 星期三

【IT Notes】RHCE測驗第二題 CREATE YUM REPOSITORIES

Q2: CREATE YUM REPOSITORIES 

As a system administrator, you will need to install software on the managed nodes. Create the playbook /home/student/ansible/yum_repo.yml which creates the following yum repositories on each of the managed nodes as follows:

一.解題過程:

[student@workstation ansible]$ touch yum_repo.yml   \\建立yum_repo.yml檔
[student@workstation ansible]$ vim yum_repo.yml      \\編輯yum_repo.yml檔

---
- name: create yum repos
  hosts: all
  tasks:
    - name: import rpm key
      rpm_key:
        key: http://example.classroom.com/repos/RPM-GPG-KEY-Rocky-9
        state: present
    - name: create BaseOS repo
      yum_repository:
        name: EX294_BASE
        description: EX294 base software
        baseurl: http://example.classroom.com/repos/baseos
        enabled: yes
        gpgcheck: yes
    - name: create AppStream repo
      yum_repository:
        name: EX294_STREAM
        description: EX294 stream software
        baseurl: http://example.classroom.com/repos/appstream
        enabled: yes
        gpgcheck: yes


可以使用ansible-play -C yum_repo.yml或者是ansible-play --syntax yum_repo.yml,驗證一下yml檔有沒有問題

回傳每一台node都是綠色的回應就代表可以布署了

[student@workstation ansible]$ ansible all -m shell -a 'yum repolist'  \\驗證布署結果
以上回應的畫面就可以顯示每台node的repo都建立完畢


二.恢復解題前的環境

一樣如果要反覆做題目的話,需要做一個yml來恢復變更前的環境。

[student@workstation ansible]$ vim 02-lab-yumrepo-stop.yml

---
- name: remove all repo
  hosts: all
  tasks:
    - name: remove base repo
      shell: sudo rm -f /etc/yum.repos.d/EX294_BASE.repo

    - name: remove centosplus repo
      shell: sudo rm -f /etc/yum.repos.d/EX294_STREAM.repo

- name: remove repo.yml
  hosts: 127.0.0.1
  tasks:
    - name: remove repo.yml
      file:
        path: /home/student/ansible/yum_repo.yml
        state: absent

















2024年3月23日 星期六

【IT Notes】RHCE測驗第一題 INSTALL AND CONFIGURE ANSIBLE

 

Q1: INSTALL AND CONFIGURE ANSIBLE 

Install and configure Ansible on the control node workstation.example.com as follows:

  • Install the required packages

  • Create a static inventory file called /home/student/ansible/inventory so that:

    • node1 is a member of the dev host group
    • node2 is a member of the test host group
    • node3 and node4 are members of the prod host group
    • node5 is a member of the balancers host group
    • The prod group is a member of the webservers host group
  • Create a configuration file called /home/student/ansible/ansible.cfg so that:

    • The host inventory file is /home/student/ansible/inventory
    • The default content collections directory is /home/student/ansible/mycollections
    • The default roles directory is /home/student/ansible/roles



一.解題過程:

1.下載並安裝ansible

[student@workstation ~]sudo dnf install ansible-core -y


2.建立檔案資料夾

[student@workstation ~]$ mkdir ansible

[student@workstation ~]$ cd ansible/

[student@workstation ansible]$ touch inventory

[student@workstation ansible]$ mkdir mycollections

[student@workstation ansible]$ mkdir roles


3.依題目要求建立inventory

[student@workstation ansible]$ vim inventory

[dev]
node1

[test]
node2

[prod]
node3
node4

[balancers]
node5

[webservers:children]
prod

用ping模組驗證看看是否都連線成功

[student@workstation ansible]$ ansible all -m ping 

都綠色的回應就是成功了

4.建立ansible.cfg(以前舊版的ansible有範本可以直接複製,但RHCE9之後只能用背的)

[student@workstation ansible]$ vim ansible.cfg
[defaults]
inventory = /home/student/ansible/inventory
roles_path = /home/student/ansible/roles
collections_paths = /home/student/ansible/mycollections 
\\這是考RHCE9和8最大不同之處,8版並沒有這一個設定,所以也是很容易遺忘的重點,collection沒有設定的話後面題目就沒得做了
remote_user = student
ask_passwd = False

[privilege_escalation]
become= True
become_method = sudo
become_user = root
become_passwd = False


二.恢復解題前的環境

為了要反覆練習,我在每一題都做了一個yml,可以讓環境恢復到解題以前的情況。本次題目的還原yml命名為 01-lab-config-stop.yml。

[student@workstation ansible]$ vim 01-lab-config-stop.yml

---
- name: remove epel-release and ansible
  hosts: 127.0.0.1
  tasks:
    - name: remove epel-release and ansible-core
      yum:
        name: "{{ item }}"
        state: absent
      loop:
      - epel-release
      - ansible-core
- name: remove config and inventory
  hosts: 127.0.0.1
  tasks:
    - name: remove config, inventory and mycollections
      shell:
              'for i in {ansible.cfg,inventory,mycollections}
                   do
                      rm -rf ~/ansible/$i
                   done'
[student@workstation ansible]$ ansible-playbook 01-lab-config-stop.yml


2024年3月12日 星期二

【IT Notes】RHCE考試環境建置

大半年沒有寫網誌了,除了結婚的籌備和蜜月旅行以外,我還忙了一段時間在處理搬家事宜,再來是上一分工作實在沒有太多技術文件可以寫,大部分時間都在搞infra,而且重複性很高,目前換了新工作,又回到Linux環境了,但是考試已經過了半年,得要趕快趁還沒有忘記考試內容前把細節記錄下來,以便將來遇到時有用。考試環境的練習,是先能夠要建立七台VM,大部分的網路上解答都沒有提到這部分,但其實它也很重要

環境建置的步驟:

·下載並安裝VirtualBox

網址:https://www.virtualbox.org/,這邊就不用特別多說了,頂多有些Windows電腦被要求多安裝Microsoft Visual C++,微軟官網就有提供下載點了。


二·安裝各台Linux

因為我在練習的時候找不到合適的安裝軟體,所以就選用RockyLinux,內容其實大都很完整也好用,安裝過程大同小異,流程我就不囉嗦了。
1.基本要給每一台主機相同的管理者帳密student帳號也用最高權限,考試的時候用的不會是root
root / redhat
student / student


2.建好一台主機後,用「再製」功能就能夠把虛擬機複製出來,不必一台台慢慢做。



3.CPU給4核心、RAM給4G、硬碟切sda和sdb。node1node2各有一個邏輯卷宗叫做research,要切割sda3出來並給它1G空間。


node1和node2有因應分割磁碟的題目而先做邏輯卷宗,另外三台則不用


4.因為沒有DNS主機,所以/etc/hosts上要做設定,做題的時候用的不是ip而是hostname

[student@workstation ansible]$ cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.250.9 workstation
172.25.250.10 node1
172.25.250.11 node2
172.25.250.12 node3
172.25.250.13 node4
172.25.250.14 node5
172.25.250.15 example.classroom.com classroom



5.workstation上要把student帳號的ssh public key傳到各節點,並且設定不用輸入密碼就能登入。之前有寫過文章,方法在這個連結
把公鑰傳送到各節點的相對路徑之後,每次登入就能直接不透過密碼



6.Private IP 是給內部連線的,Public IP是給Putty連線之用,因為模擬考試的環境,那時也是用ssh連線到workstation主機,然後再連線到各個節點做操作,因此在安裝每一台虛擬機的時候,除了內部使用的NAT網卡外,要再增加一張「僅限主機介面卡凱。

點選「檔案」>「喜好設定」,準備建立每一台VM的內網環境。


「網路」>「+」,加入新的網路

名稱隨意,網段就開172.25.250.0/24,這樣內網環境就建立了。

第一張NAT網卡是內外部串連網路用的

第二張網卡選「僅限主機介面卡」,這是用來讓本機ssh進去用的


查詢本機的網路卡,用cmd輸入ipconfig /all 指令,可以查到這張interface,這就是可以用來shh道節點的網路環境


進去Linux,輸入nmtui指令,就能夠將網卡設定新的ip

這張網卡ip就設定192.168.56.0/24網段內某一ip


最後更新過的enp0s8,是用來跟自己電腦做連線的,如此我才能夠用ssh或putty連過去workstation操作。


三·Data主機的環境布置

最後一台的data主機要擔任提供下載資料用,包括repo、roles、collection和每一題所需要下載的yml,裡面的東西很多,要先都放好,還要先安裝網頁伺服器才能給其他台節點提供url,所以這台的建制就開一個新的標題。

1.先安裝網頁伺服器
[root@classroom ~]#yum install httpd -y
[root@classroom ~]#systemctl start httpd

2.開啟httpd的防火牆
[root@classroom ~]#firewall-cmd --add-port=80/tcp --permanent
[root@classroom ~]#firewall --reload

3.放考試用的資料

先建立三個資料夾

/var/www/html/cd/exam_ehce8/ 此路徑下面的檔案

haproxy.tar.gz和phpinfo.tar.gz這兩個檔案自己做太麻煩,我是從補習班資料取得的,我把它放在雲端空間供下載:

salaries.yaml檔是加密的檔案,我也放在雲端給直接下載。


hosts.j2的內容如下
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

hwrepot.empty的內容如下
# Hardware report
HOST=inventoryhostname
MEMORY=memory_in_MB
BIOS=BIOS_version
DISK_SIZE_SDA=disk_sda_size
DISK_SIZE_SDB=disk_sdb_size

user_list.yml的內容如下
users:
- name: john
  uid: 1201
  password: "{{ pw_developer }}"
  group: devops
  job: developer
- name: james
  uid: 1202
  password: "{{ pw_manager }}"
  group: opsmgr
  job: manager
- name: mary
  uid: 2201
  password: "{{ pw_manager }}"
  group: opsmgr
  job: manager

materials資料夾下的三個檔案是從網路上抓的,此檔案很重要,關係到之後做題目的順暢度
不過我也還是放在雲端硬碟方便下載:
ansible-posix-1.4.0.tar.gz
community-general-4.3.0.tar.gz


repo檔之前有研究過,這邊就完全照抄上次的設定


以上大概是模擬考題環境的建置,光是這堆東西弄完就用幾個小時了,如果沒有先做這些,也就模擬不出來考試題目的各種效果,網路上這好像還沒有人先做,於是這篇的紀錄重點我個人覺得很重要。












2023年10月31日 星期二

【IT Notes】用VBA巨集在Outlook上自動預設寄件帳號

又整整一個多月沒有發文了,來新公司後幾乎碰觸到的都是Windows系統,因此也學習到一些新技術,而VBA巨集算是我比較感興趣的,這篇文章就記錄如何用VBA巨集、將Outlook的寄件帳號自動帶入,不用每次很麻煩都要手動選。 

公司最近在將Exchange信箱上到雲端的O365,過程中遇到很多困難,上雲也並非想像中容易,很多原先使用者所習慣的操作方式,到了雲端上後也沒有那麼簡單就能同步。這次遇到的難題是有許多屬於個人使用的信箱帳號要轉成O365的共用信箱,而且要能夠收發信,更多的要求是共用信箱要當作主要的發信帳號,然後發信後的寄件備份又要能正常落入共用信箱自己,很多奇奇怪怪的需求。最初的做法是在帳號設定上直接新增共用信箱帳號,並且設定為預設帳號,結果這就變成悲劇的開始。

在微軟的政策上這樣做是不可行的,共用信箱是不能設定成預設帳號來用,一旦這樣用的結果就是Outlook會變得收信非常緩慢,更慘的是發信會失敗,最近整個動彈不得,使用者叫苦連天,原廠給的協助訊息大多是官方教程,像這樣自己要硬來的需求,他們通常是不會花太多時間幫忙處理的,花了好幾周後,網路上還是找到了神人的做法,要滿足這樣的特殊需求,就不要用不符合微軟原廠設計的做法,乾脆維持原樣,不要硬加共用信箱帳號,如果使用者想把共用信箱當作預設寄件帳號的話,就用巨集自動化的方式,這樣問題就能解決了。

1.共用信箱如果在後台已經委派好,它自己會隨著使用者登入時推播出現的

不用特別再手動新增帳號

2.像下列這樣把共用信箱帳號設定進去的作法是會衝突的,應該刪除,只留個人信箱

如果有像這樣的設定,就刪除共用信箱帳號

可以刪除掉暫存檔,不用擔心會信箱資料遺失

3.進入Outlook,按下Alt+F11或者是Fn+Alt+F11,打開巨集編寫程式

(此步驟是針對某些用戶想把共用信箱當作預設寄件帳號,又懶得每次都要手動選的解決方式)

打開vba編輯用的程式

4.將下列VBA貼入,並修改部分內容

'================================================================================
'Description: Outlook macro to automatically set a different
'             From address.
'
'Comment: You can set the email address at the bottom of the code.
'         Uncomment the myOlExp_InlineResponse sub to also make it
'         work with the Reading Pane reply feature of Outlook 2013/2016/2019/365.
'
' author : Robert Sparnaaij
' version: 1.1
' website: https://www.howto-outlook.com/howto/setfromaddress.htm
'================================================================================

Dim WithEvents objInspectors As Outlook.Inspectors
Dim WithEvents objMailItem As Outlook.MailItem
Dim WithEvents myOlExp As Outlook.Explorer

Private Sub Application_Startup()
    Initialize_handler
End Sub

Public Sub Initialize_handler()
    Set objInspectors = Application.Inspectors
    Set myOlExp = Application.ActiveExplorer
End Sub

Private Sub objInspectors_NewInspector(ByVal Inspector As Inspector)
    If Inspector.CurrentItem.Class = olMail Then
        Set objMailItem = Inspector.CurrentItem
        If objMailItem.Sent = False Then
            Call SetFromAddress(objMailItem)
        End If
    End If
End Sub

'Uncomment the next 3 lines to enable Outlook 2013/2016/2019/365 Reading Pane Reply
'Private Sub myOlExp_InlineResponse(ByVal objItem As Object)
'    Call SetFromAddress(objItem)
'End Sub

Public Sub SetFromAddress(oMail As Outlook.MailItem)
    ' Set your preferred default From address below.
    ' Exchange permissions determine if it is actually stamped
    ' as "Sent On Behalf Of" or "Sent As".
    ' The address is not properly updated for the InlineResponse
    ' feature in Outlook 2013/2016/365. This is only a visual bug.
    oMail.SentOnBehalfOfName = "delegate@domain.com"
End Sub

5.移除此段落前面的註解符號,使其生效

Private Sub myOlExp_InlineResponse(ByVal objItem As Object)
    Call SetFrom(objItem)
End Sub


6.將想要作為主要發信信箱的帳號修改至雙引號內

oMail.SentOnBehalfOfName = "delegate@domain.com"



7.透過自簽憑證啟用巨集

這份巨集得要有一個自簽憑證才能夠生效,所以就去Office內建的程式製作

依不同版本的Office,自簽憑證程式的位置有所不同

  • Windows 32-bit
    C:\Program Files\Microsoft Office\Office <version number>
  • Windows 64-bit with Office 32-bit
    C:\Program Files (x86)\Microsoft Office\Office <version number>
  • Windows 64-bit with Office 64-bit
    C:\Program Files\Microsoft Office\Office <version number>
  • Office 365 32-bit (Subscription based or Click-to-Run version of Office 2016 / 2019)
    C:\Program Files (x86)\Microsoft Office\root\Office16
  • Office 365 64-bit (Subscription based or Click-to-Run version of Office 2016 / 2019)
    C:\Program Files\Microsoft Office\root\Office16

找到程式並底兩下製作憑證


自命名憑證的名稱


憑證完成後,再到Outlook上啟用巨集憑證

選用剛剛建立的憑證

檔案>選項>信任中心>信任中心設定>巨集設定>經由數位簽章的巨集會啟用,其他所有巨集會停用

確認啟用巨集的安全層級


完成以上流程以後,就可以把共用信箱作為寄件的預設帳號發信了。


8.設定共用信箱的寄件備份不移入個人備份

在網頁版上使用共用信箱寄件會以正常方式進入到寄件備份,但在Outlook 2016則會跑到個人信箱的寄件備份,此部分只需要修改機碼來修正即可。製作機碼的內容如下:

Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Outlook\Preferences]
"DelegateSentItemsStyle"=dword:00000001 


機碼檔命名為DelegateSentItemsStyle.reg,將此檔案傳給使用者並執行即能解決問題。


















2023年9月4日 星期一

某些人生中的過客

整個八月非常忙碌,忙到沒心思和空閒寫點東西,先是8/13完成了訂婚儀式,再來8/28換了新的工作,最後是9月初參加並通過RHCE的考試,這過程當中難免感到壓力過大而情緒不好,不過年已快到四十歲,多少也知道該怎麼調適心情。接下來還要忙的事情還很多,之後新家還要搬東西和買一大堆物品,搬過去住之前還有很多電器都還沒有買,真希望這樣的日子盡快度過,我想放假或去度個長假。

關於離開待了快四年的PChome,我也是覺得心情很複雜,常常覺得在那裡不是很開心,但也不知不覺從2019年10月就做到現在,離開時還多少有點不捨,我記得當時離開慧科轉來這邊時,覺得很無助又很難受,因為我是處在一個沒有任何人看好我的環境下工作,我一個沒有IT背景的人,又是社會組出來跟理工科搶飯碗的菜鳥,自然不受歡迎也不被期待,直到今年離開都一直被定位和甚至受歧視的壓力,但在此中,我還是花了兩年時間考到了RHCE,一方面感謝PChome給我環境磨練;一方面也慶幸我擺脫那些異樣眼光。三年多時光,我已經比當初更有自信,雖然在很多人眼中我的經驗還是很不足,不過起碼我已經取得踏入IT資格、當一個工程師的門票,也許學得慢,但不表示我都學不來。

我平常不愛講這些,但還是得要感謝家人和老婆,大家都很願意在背後支持我,讓我上課與準備考試的這兩年間沒有後顧之憂,老婆還陪我去廟裡拜很多次的文昌帝君、祈求考試能通過,希望接下12月的婚禮也能順順利利完成。

其實今年四月的時候我就想寫一篇網誌來講一個人,就是以前讀戰略所的王高成老師,某日傳出老師從學校的驚聲大樓跳樓自殺,消息剛出來的時候沒有一個同學或學長不震驚的,想不到一個曾經很熟悉的人會那麼快離開世界。我對王老師的印象很深刻,他在我面試戰略所的時候的面試官,也是當時所長,他問的其中一題我還回答不出來,後來碩一有一門國際關係的必修課程也是王老師的,那這堂三學分的課程是我們全班同學少數機會都會見到面的課程,後來我幾乎就沒有機會見到老師,倒是很多當過老師助教的學長和同學很多怨念,嫌所長的東西太多搞得很累之類的話,不過他畢竟是所長,所以每次聽大家抱怨的時候我也總是保留態度,看到那張他帶我們去新竹空軍基地參訪的照片時,突然很多回憶還是很清晰,十幾年前的事情就好像才剛發生不久而已。

某一位學弟曾當過老師助理,他在臉書上說,王老師曾督促他沒事多注意所辦,畢竟驚聲大樓是淡江最高樓,戰略所又在最高的12樓,從大學時期就偶有傳出意外,如果觀察到有些精神或神情異常的人,就要特別小心別讓他出事,沒有想到老師自己也走上那條不歸路,通常我們只會在電視上看到老師上政論節目,忽然這樣的結束只留下滿滿的錯愕和遺憾。


2008年那時候一張隨手一拍的照片就能勾起很多回憶,15年前的很多畫面想起來依然歷歷在目。

離開戰略所就是當兵,然後最後是踏入更殘酷的社會,永遠記得剛出社會找工作時非常不順遂,也許是受限於畢業的科系(這問題的答案我依然在尋找),後來還是邊考試邊打工,陰錯陽差去了慧科才開始對資訊產生興趣,漸漸地萌生想要當工程師的想法,後來2019年10月去了國際連或拍付,開始了零基礎工程師的磨練,在同事的建議下去聯成電腦上RedHat Linux的課程,記得2021年四月才決定去上課,上課前同事還跟我說,聯成的胡尚忠老師上的不錯,但是講話很機車、會靠北同學,後來去上了之後也確實領教到老師的大砲性格,除了一開始會酸學校的電腦教育很失敗、把學生教得只懂單向思考外,到後來會常噹同學的一些問題,他認為不會自主或多元思考的台灣學生都是非常致命的,是個很典型的工程師思維,他希望他教出來的學生都是能靈活地解決問題。

如果是在面授的情況下,我會覺得上胡老師的課有些壓力(後來因疫情,上課都改聽線上的),加上他經常會自己加料,所以一整個禮拜天的課程,從早上十點上到晚上六、七點是很正常的,必須承認這樣上課覺得很累。我們也都知道胡老師會自己加班弄電腦和備課到九點或甚至更晚,聯成的員工都下班後,他還是最後一個才走,經常要幫補習班關鎖門。經過整整兩年多的課程和訓練,我終於拿到RHCE的證照,可是當我9/2考試當天,我才知道胡老師也蒙主寵召,前兩週上考前衝刺班時正好奇為什麼胡老師沒教了、換一位從高雄上來支援的老師,問助教也吱吱唔唔不肯講,直到代課老師說,胡老師三月的某一天上課到一半覺得不舒服想請假,回家就暴斃在半路的計程車上,判斷是過勞死(也難怪原本規劃2/28要考試的時間被延後整整半年),老師平常教課太忙又要一直準備後續的考試(紅帽教師資格是必須不停取得認證不中斷),也就讓他的工程師人生早早劃下句點。

對胡老師的印象比較多是他的大砲性格,我有時候問一些問題也被會他砲轟,記得最清楚的是考RHCSA之前,發訊息問他補習班教室可不可以開放練習,隔天上課他就轟我說,自己要有能力做出模擬的考試環境,他都已經把相關資料發在網路上了,我當時覺得委屈,因為就是有幾題模擬不出來,所以才希望用RedHat原廠的Lab來練習,而老師得要開啟環境我才能練(罵歸罵,他後來還是開放了)......。不過也就被他這麼一轟,後來RHCE我就花好幾個月時間自己用VirtualBox模擬出十幾題的考試環境,除了一題弄不出來之外,其他題都做出來也可以還原成功,加上他考試時也非常嚴厲,學生有問題基本上一概不協助,不得不說,被他當時的一激,我還是展現出被當頭棒喝的戰鬥力。
當時也不知道為什麼會拍下這張照片,本來應該是要拍白板吧,就順便把老師也拍進去。(2021/4)

這張證照得來不易,花了我兩年才弄到,也許久了點,但我還是拿到了。


這兩年時間過得飛快,不知不覺我的人生就多了兩個過客了,雖然短暫卻也有影響力,希望在這麼歲月如梭的生命當中,每次想起這些一閃即逝的過客,我會懂得珍惜跟我長時間相處、習以為常的那些人,不忘敦促和反省自己要多明白什麼該把握。

PS.有空再來記錄一下RHCE的考試的環境和考題,畢竟也花了很多時間練習和建置,將來說不定還會派得上用場。

【IT Notes】RHCE測驗第四題 INSTALL A COLLECTION

Create a playbook called  /home/student/ansible/packages.yml  that: Installs the  php  and  mariadb  packages on hosts in the  dev ,  test ,...