add auto fetch ssl certs

This commit is contained in:
2021-08-26 12:11:25 +08:00
parent 11ca254bed
commit 509ac048fc
237 changed files with 4968 additions and 7406 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\n\x3cp\x3e想用PXE來處理只要user開機按F12(acer 桌機) 選擇PXE Boot\x3c\/p\x3e\n\n\x3cp\x3e然後選擇OS版本就可以自動進行安裝\x3c\/p\x3e\n\n\x3cp\x3e安裝完成後會自動重新開機接著就用ansible來做user環境設定\x3c\/p\x3e\n\n\x3cp\x3ePXE的部份本來是沒有什麼問題自動安裝系統的部份都做好了\x3c\/p\x3e\n\n\x3cp\x3e可是因為這次的量比較多想說讓每一台在完成PXE安裝後的第一次重開機\x3c\/p\x3e\n\n\x3cp\x3e就送出一封郵件來通知我說已經完成安裝可以執行ansible 了\x3c\/p\x3e\n\n\x3cp\x3e看似很簡單的一件事情卻搞了我兩天\x26hellip;.\x3c\/p\x3e",
"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",
"inLanguage" : "en",
"author" : "Eric Chang",
"creator" : "Eric Chang",
@@ -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=1626744134" rel="stylesheet" id="theme-stylesheet" type='text/css' media='all'>
<link href="https://h.cowbay.org/css/style.css?v=1629951055" rel="stylesheet" id="theme-stylesheet" type='text/css' media='all'>
<link href="https://h.cowbay.org/css/custom.css?v=1626744134" rel="stylesheet" type='text/css' media='all'>
<link href="https://h.cowbay.org/css/custom.css?v=1629951055" 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">
@@ -81,10 +81,6 @@ if (!doNotTrack) {
<ul id="menu-secondary-items" class="menu-secondary-items">
<li class="menu-item menu-item-type-taxonomy menu-item-object-category">
<a href="/categories/"></a>
</li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category">
<a href="/categories/ansible">ansible</a>
</li>
@@ -309,90 +305,49 @@ if (!doNotTrack) {
<div class="entry-content">
<article>
<p>最近有個任務需要大量安裝client</p>
<p>想用PXE來處理只要user開機按F12(acer 桌機) 選擇PXE Boot</p>
<p>然後選擇OS版本就可以自動進行安裝</p>
<p>安裝完成後會自動重新開機接著就用ansible來做user環境設定</p>
<p>PXE的部份本來是沒有什麼問題自動安裝系統的部份都做好了</p>
<p>可是因為這次的量比較多想說讓每一台在完成PXE安裝後的第一次重開機</p>
<p>就送出一封郵件來通知我說已經完成安裝可以執行ansible 了</p>
<p>看似很簡單的一件事情,卻搞了我兩天&hellip;.</p>
<p>本來在 preseed 檔案中,就有 preseed/late_command 可以用</p>
<p>但是測試了很多遍,才終於找到正確的語法</p>
<pre><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>
</code></pre><p>這會把目標主機上的 /etc/rc.local 的內容改成只有一行</p>
<pre><code>hostname|mail -s pxe_install_complete admin@abc.com
</code></pre>
<p>這樣就可以讓主機在完成系統安裝後,第一次重新開機時,送出郵件通知</p>
</code></pre><p>這樣就可以讓主機在完成系統安裝後,第一次重新開機時,送出郵件通知</p>
<p>可是呢因為ubuntu 開機時,本來就會去執行 /etc/rc.local</p>
<p>所以「每次」開機後,都會送出郵件通知</p>
<p>但是我只想要接到一次通知就好了啊</p>
<p>有文章說可以用 s6-svc 來處理</p>
<p>不過我沒弄懂怎麼用</p>
<p>另一個是用ansible來處理</p>
<p>又或者是,讓這個指令在送出郵件後,「自我還原」或者「自我更新」</p>
<p>自我還原的部份可以這樣做</p>
<pre><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>
</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'
</code></pre>
<p>這樣一來,在送出郵件後,/etc/rc.local 的檔案內容會被恢復成只有底下這一行</p>
</code></pre><p>這樣一來,在送出郵件後,/etc/rc.local 的檔案內容會被恢復成只有底下這一行</p>
<pre><code>exit 0
</code></pre>
<p>暫時先這樣子處理</p>
<h3 id="更新">更新</h3>
</code></pre><p>暫時先這樣子處理</p>
<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 \
in-target apt-file update; \
in-target passwd --expire root ;\
in-target cp /etc/rc.local /etc/rc.local.bak ;\
in-target /bin/sh -c 'echo &quot;hostname|mail -s pxe_install_complete admin@abc.com&quot; &gt; /etc/rc.local' ;\
in-target /bin/sh -c 'echo &quot;cp /etc/rc.local.bak /etc/rc.local&quot; &gt;&gt; /etc/rc.local'
</code></pre>
<p>在開機之後,會先送出郵件通知,然後會把剛剛複製的備份覆蓋回來,變成原本的 rc.local</p>
</code></pre><p>在開機之後,會先送出郵件通知,然後會把剛剛複製的備份覆蓋回來,變成原本的 rc.local</p>
<p>這樣就不會有什麼問題了</p>
</article>
</div>
@@ -672,7 +627,7 @@ title="pinterest icon"></i>
</ul> <div class="design-credit">
<p>&copy; 2018 Göran Svensson</p>
<p>© 2018 Göran Svensson</p>
<p>Nederburg Hugo Theme by <a href="https://appernetic.io">Appernetic</a>.</p>
@@ -684,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=1626744134"></script>
<script src="https://h.cowbay.org/js/production.min.js?v=1629951055"></script>
</body>
</html>