update some content

This commit is contained in:
2021-10-28 14:13:06 +08:00
parent 97eb780aa4
commit 4f99455d8f
242 changed files with 1826 additions and 2616 deletions

View File

@@ -13,7 +13,7 @@
"articleSection" : "post",
"name" : "[筆記] 用pxe 安裝系統,完成後送出郵件通知 \/ send mail notification after pxe install",
"headline" : "[筆記] 用pxe 安裝系統,完成後送出郵件通知 \/ send mail notification after pxe install",
"description" : "\x3cp\x3e最近有個任務需要大量安裝client\x3c\/p\x3e\n\x3cp\x3e想用PXE來處理只要user開機按F12(acer 桌機) 選擇PXE Boot\x3c\/p\x3e\n\x3cp\x3e然後選擇OS版本就可以自動進行安裝\x3c\/p\x3e\n\x3cp\x3e安裝完成後會自動重新開機接著就用ansible來做user環境設定\x3c\/p\x3e\n\x3cp\x3ePXE的部份本來是沒有什麼問題自動安裝系統的部份都做好了\x3c\/p\x3e\n\x3cp\x3e可是因為這次的量比較多想說讓每一台在完成PXE安裝後的第一次重開機\x3c\/p\x3e\n\x3cp\x3e就送出一封郵件來通知我說已經完成安裝可以執行ansible 了\x3c\/p\x3e\n\x3cp\x3e看似很簡單的一件事情卻搞了我兩天\x26hellip;.\x3c\/p\x3e",
"description" : "\u003cp\u003e最近有個任務需要大量安裝client\u003c\/p\u003e\n\u003cp\u003e想用PXE來處理只要user開機按F12(acer 桌機) 選擇PXE Boot\u003c\/p\u003e\n\u003cp\u003e然後選擇OS版本就可以自動進行安裝\u003c\/p\u003e\n\u003cp\u003e安裝完成後會自動重新開機接著就用ansible來做user環境設定\u003c\/p\u003e\n\u003cp\u003ePXE的部份本來是沒有什麼問題自動安裝系統的部份都做好了\u003c\/p\u003e\n\u003cp\u003e可是因為這次的量比較多想說讓每一台在完成PXE安裝後的第一次重開機\u003c\/p\u003e\n\u003cp\u003e就送出一封郵件來通知我說已經完成安裝可以執行ansible 了\u003c\/p\u003e\n\u003cp\u003e看似很簡單的一件事情卻搞了我兩天\u0026hellip;.\u003c\/p\u003e",
"inLanguage" : "en",
"author" : "Eric Chang",
"creator" : "Eric Chang",
@@ -21,8 +21,8 @@
"accountablePerson" : "Eric Chang",
"copyrightHolder" : "Eric Chang",
"copyrightYear" : "2019",
"datePublished": "2019-07-31 11:06:33 \x2b0800 CST",
"dateModified" : "2019-07-31 11:06:33 \x2b0800 CST",
"datePublished": "2019-07-31 11:06:33 \u002b0800 CST",
"dateModified" : "2019-07-31 11:06:33 \u002b0800 CST",
"url" : "https:\/\/h.cowbay.org\/post\/send-mail-to-notify-after-pxe-install\/",
"wordCount" : "139",
"image" : "https://h.cowbay.orghttps://h.cowbay.org/images/post-default-11.jpg"",
@@ -45,9 +45,9 @@
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
<link href="https://h.cowbay.org/css/style.css?v=1632901489" rel="stylesheet" id="theme-stylesheet" type='text/css' media='all'>
<link href="https://h.cowbay.org/css/style.css?v=1634607506" rel="stylesheet" id="theme-stylesheet" type='text/css' media='all'>
<link href="https://h.cowbay.org/css/custom.css?v=1632901489" rel="stylesheet" type='text/css' media='all'>
<link href="https://h.cowbay.org/css/custom.css?v=1634607506" rel="stylesheet" type='text/css' media='all'>
<link rel="shortcut icon" href="https://h.cowbay.org/img/favicon.ico" type="image/x-icon">
<link rel="icon" href="https://h.cowbay.org/img/favicon.ico" type="image/x-icon">
@@ -314,12 +314,12 @@ if (!doNotTrack) {
<p>看似很簡單的一件事情,卻搞了我兩天&hellip;.</p>
<p>本來在 preseed 檔案中,就有 preseed/late_command 可以用</p>
<p>但是測試了很多遍,才終於找到正確的語法</p>
<pre><code>d-i preseed/late_command \
<pre tabindex="0"><code>d-i preseed/late_command \
in-target apt-file update; \
in-target passwd --expire root ;\
in-target /bin/sh -c 'echo &quot;hostname|mail -s pxe_install_complete admin@abc.com&quot; &gt; /etc/rc.local'
</code></pre><p>這會把目標主機上的 /etc/rc.local 的內容改成只有一行</p>
<pre><code>hostname|mail -s pxe_install_complete admin@abc.com
<pre tabindex="0"><code>hostname|mail -s pxe_install_complete admin@abc.com
</code></pre><p>這樣就可以讓主機在完成系統安裝後,第一次重新開機時,送出郵件通知</p>
<p>可是呢因為ubuntu 開機時,本來就會去執行 /etc/rc.local</p>
<p>所以「每次」開機後,都會送出郵件通知</p>
@@ -329,19 +329,19 @@ if (!doNotTrack) {
<p>另一個是用ansible來處理</p>
<p>又或者是,讓這個指令在送出郵件後,「自我還原」或者「自我更新」</p>
<p>自我還原的部份可以這樣做</p>
<pre><code>hostname|mail -s pxe_install_complete admin@abc.com
<pre tabindex="0"><code>hostname|mail -s pxe_install_complete admin@abc.com
echo &quot;#!/bin/sh -e\nexit 0&quot; &gt; /etc/rc.local
</code></pre><p>所以preseed 那邊的語法就要改一下</p>
<pre><code> in-target /bin/sh -c 'echo &quot;hostname|mail -s pxe_install_complete admin@abc.com;\&quot;exit 0\&quot; &gt; /etc/rc.local'
<pre tabindex="0"><code> in-target /bin/sh -c 'echo &quot;hostname|mail -s pxe_install_complete admin@abc.com;\&quot;exit 0\&quot; &gt; /etc/rc.local'
</code></pre><p>這樣一來,在送出郵件後,/etc/rc.local 的檔案內容會被恢復成只有底下這一行</p>
<pre><code>exit 0
<pre tabindex="0"><code>exit 0
</code></pre><p>暫時先這樣子處理</p>
<h3 id="更新-">更新</h3>
<h3 id="更新">更新</h3>
<p>因為直接把 /etc/rc.local 的內容改掉,實在讓我有點不放心</p>
<p>所以想到一個方式,先備份 /etc/rc.local 然後加入我要的功能</p>
<p>因為我只需要它跑一次就好,所以就可以在最後面加入還原剛剛複製的備份檔案</p>
<p>簡單說在preseed 檔案中 改成這樣</p>
<pre><code>d-i preseed/late_command \
<pre tabindex="0"><code>d-i preseed/late_command \
in-target apt-file update; \
in-target passwd --expire root ;\
in-target cp /etc/rc.local /etc/rc.local.bak ;\
@@ -639,7 +639,7 @@ title="pinterest icon"></i>
</div>
<script src="https://h.cowbay.org/js/jquery.min.js"></script>
<script src="https://h.cowbay.org/js/jquerymigrate.js"></script>
<script src="https://h.cowbay.org/js/production.min.js?v=1632901489"></script>
<script src="https://h.cowbay.org/js/production.min.js?v=1634607506"></script>
</body>
</html>