半自動化系統安裝

来源:https://www.cnblogs.com/www233ii/archive/2019/11/16/11873399.html
-Advertisement-
Play Games

[toc] 半自動化之系統安裝 自製應答文件 1. 使⽤kickstart半⾃動化安裝CentOS系統 理解kickstart文件的作用和編寫格式。 KickStart是一種半自動化的安裝方式。KickStart的工作原理是通過記錄典型的安裝過程中所需人工干預填寫的 各種參數,並生成一個名為ks.c ...


目錄

半自動化之系統安裝

自製應答文件

1. 使⽤kickstart半⾃動化安裝CentOS系統

  • 理解kickstart文件的作用和編寫格式。
    KickStart是一種半自動化的安裝方式。KickStart的工作原理是通過記錄典型的安裝過程中所需人工干預填寫的
    各種參數,並生成一個名為ks.cfg的文件;在其後的安裝過程中(不只局限於生成KickStart安裝文件的機器)當
    出現要求填寫參數的情況時,安裝程式會首先去查找KickStart生成的文件,當找到合適的參數時,就採用找到的
    參數,當沒有找到合適的參數時,才需要安裝者手工干預。這樣,如果KickStart文件涵蓋了安裝過程中出現的所
    有需要填寫的參數時,安裝者完全可以只告訴安裝程式從何處取ks.cfg文件,然後去忙自己的事情。等安裝完畢,
    安裝程式會根據ks.cfg中設置的重啟選項來重啟系統,並結束安裝。

2. KickStart⽂件格式與anaconda-ks.cfg⽂件格式⼗分類似,總體由三部分組成:

1. 命令段:

指明各種安裝前配置,如鍵盤類型等

  • 必備命令:
    authconfig:認證方式配置
    authconfig --useshadow --passalgo=sha512
    bootloader:bootloader的安裝位置及相關配置
    bootloader --location=mbr --driveorder=sda –
    append="crashkernel=auto rhgb quiet"
    keyboard:設定鍵盤類型
    ang:語言類型
    part:創建分區
    rootpw:指明root的密碼
    timezone:時區

  • 可選命令
    install OR upgrade
    text:文本安裝界面
    network
    firewall
    selinux
    halt
    poweroff
    reboot
    repo
    user:安裝完成後為系統創建新用戶
    url: 指明安裝源
    key –skip 跳過安裝號碼,適用於rhel版本

2. 程式包段:

指明要安裝的程式包組或程式包,不安裝的程式包等
%packages
@group_name
檢查ks⽂件語法錯誤:
ksvalidator /path/to/ks.cfg

3. 腳本段:

%pre:安裝前腳本
運行環境:運行於安裝介質上的微型Linux環境
%post:安裝後腳本
運行環境:安裝完成的系統
安裝後腳本非常有用,我們可以在這裡定義系統安裝完成後自動安裝yum源,創建一些普通用戶等功能。
生成ks應答文件方法:
1.參照anaconda-ks.cfg文件修改(不常用)
2.利用system-config-kickstart圖形工具製作(常用)

檢查ks⽂件語法錯誤:
ksvalidator /path/to/ks.cfg


前提準備

系統安裝程式anaconda以及光碟中isolinux目錄的功能:
anaconda:系統安裝程式
anaconda安裝系統可分為三個階段:
安裝前配置階段:
安裝過程使用的語言;
鍵盤類型;
安裝目標存儲設備;
Basic Storage:本地磁碟;
特殊設備:iSCSI;
設定主機名;
配置網路介面;
時區;
管理員密碼;
設定分區方式及MBR的安裝位置;
創建一個普通用戶;
選定要安裝的程式包;

系統在完成安裝後,會在⽤戶家⽬錄⾃動⽣成⼀個anaconda-ks.cfg配置⽂件,記錄了安裝系統時選擇的各種參數,安裝
包等內容。

系統光碟中isolinux目錄列表文件說明:
boot.cat:類似於系統啟動時MBR的作用
grub.conf:grub.conf文件鏡像
initrd.img:是ramfs虛擬文件系統(先cpio,再gzip壓縮)
isolinux.bin:相當於grub的第二階段
isolinux.cfg:isolinux.bin的配置文件,當光碟啟動,會自動去找isolinux.cfg文件
memtest:記憶體檢測,這是一個獨立程式
splash.jpg:光碟啟動界面的背景圖
vesamenu.c32:菜單風格,菜單圖標
vmlinuz:內核鏡像。
可用的centos6系統。

1、系統預設未安裝system-config-kickstart,先進⾏yum安裝

[root@centos7 ~]#yum install system-config-kickstart.noarch 

2、運⾏kickstart(會生成一個圖形化工具)

[root@centos7 ~]#system-config-kickstart

在這裡插入圖片描述
設置這個之前你要做一個http的yum倉庫。
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

在這裡插入圖片描述 寫安裝後後文件使新的操作系統擁有一定功能

[06:19:58 root@centos html]#ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:uaSUcve3zpBKOHXaa5XQb+G1+nkaShHt7Q//qiqHgiI [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|             .   |
|           .. .  |
|       . .. .o...|
|    . + S ...+.oo|
|     + * * .o.+o |
|     .+ +.=.o.+ .|
|E . . .oo.o* + ++|
| . .   ..+oo*.+=*|
+----[SHA256]-----+
(生成ssh的公鑰私鑰對)
[06:32:04 root@centos html]#
[06:32:04 root@centos html]#ssh-copy-id 127.0.0.1
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:5mW0aEb7Z8qFTeDBRng6t5CFhjujGSdYa5vp1S6rq80.
ECDSA key fingerprint is MD5:28:3a:27:1a:ab:1c:a0:c5:5c:a6:f2:50:23:f4:77:3f.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '127.0.0.1'"
and check to make sure that only the key(s) you wanted were added.
(把文件拷貝到本地)
[06:49:34 root@centos ~]#cd .ssh
[06:49:51 root@centos .ssh]#ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts
[06:49:55 root@centos .ssh]#ll(查看authorized_keys許可權)
total 16
-rw------- 1 root root  402 Nov 12 06:48 authorized_keys
-rw------- 1 root root 1679 Nov 12 06:32 id_rsa
-rw-r--r-- 1 root root  402 Nov 12 06:32 id_rsa.pub
-rw-r--r-- 1 root root 2053 Nov 12 06:48 known_hosts
[06:50:10 root@centos .ssh]#cd ..
[06:50:20 root@centos ~]#ll -d .ssh (查看.ssh目錄許可權)
drwx------. 2 root root 80 Nov 12 06:48 .ssh
(腳本里的許可權要和這裡的一樣。)
[06:50:31 root@centos ~]#cat .ssh/authorized_keys (查看公鑰複製與腳本里作為key驗證使用。)
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTQNHJOrFP0eljtDEpsU4SH0lzrZ/uK9IJgwiVo0Cem0g57xtf8k52WxlOXJO6OhV4C2oEWh0i2wUZtKIOStrDgPO17xWIt2ogEgPVj2OGS5MBdDi0IpVEg++P/HhG+69hHPK7VngYW3pHCnOfO4cuQ3oxIemg2Yk8AsVlrKLkfmhJIy9Cluc8yxO9aACsZ+SqejNR+uWZsGHIs/teJdeQF9QwgHr/1DwvbupoAN0Y7ZqVFzdSATGOb0QO1L+4Vj6tjd0pRnOAyoTc6oQl+3XWTrfdTWvSJJRtNWbAd0xSnE5mOgIL9lhr3SdnnJtBbHjY0A57uqV3kZ7WZShToOyh [email protected]

在這裡插入圖片描述
在這裡插入圖片描述
到這裡基本上應答文件就已經製作完成了,不滿意的話可以在進行修改。

[root@centos7 ~]#vim ks7_mini2.cfg 

之後把製作好的應答文件放到之前的http伺服器上

[06:51:04 root@centos ~]#cd /var/www/html/
[07:46:42 root@centos html]#
[07:46:44 root@centos html]#ls
centos
[07:46:45 root@centos html]#mkdir ksdir
[07:46:55 root@centos html]#ls
centos  ksdir
[07:46:57 root@centos html]#pwd
/var/www/html
[07:47:12 root@centos html]#cd ksdir/
[07:47:22 root@centos ksdir]#pwd
/var/www/html/ksdir
[root@centos7 ~]#vim ks7_mini2.cfg 
[root@centos7 ~]#scp ks7_mini2.cfg 192.168.39.121:/var/www/html/ksdir

在這裡插入圖片描述
之後再重新使用vmr製作一個虛擬機
在這裡插入圖片描述
在這個界面按Esc鍵進入anaconda界面
在這裡插入圖片描述
之後輸入http的路徑
在這裡插入圖片描述
回車系統就會自動安裝了,不用在手動管理了。
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
這裡看一下key驗證有沒有實現。

[09:14:08 root@centos ~]#scp 1.txt 192.168.39.135:/root/
The authenticity of host '192.168.39.135 (192.168.39.135)' can't be established.
ECDSA key fingerprint is SHA256:XIqej+HofAyUdoNtkcyK9myMo5LaGYjBx4qkWNUjnuI.
ECDSA key fingerprint is MD5:6e:cf:b7:a5:99:ce:a6:05:ae:cb:41:d7:a5:17:2e:15.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.39.135' (ECDSA) to the list of known hosts.
1.txt                                  100%    0     0.0KB/s   00:00    
[09:14:32 root@centos ~]#scp xiangqi2_while.sh 192.168.39.135:/root/
xiangqi2_while.sh                                                                                                          100%  819   419.8KB/s   00:00    
(第一次輸了yes第二次什麼也沒輸key驗證登錄成功)
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:7d:42:24 brd ff:ff:ff:ff:ff:ff
    inet 192.168.39.135/24 brd 192.168.39.255 scope global noprefixroute dynamic eth0
       valid_lft 1653sec preferred_lft 1653sec
    inet6 fe80::c95d:730e:fbfe:7644/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@localhost ~]# ls
1.txt  anaconda-ks.cfg  original-ks.cfg  xiangqi2_while.sh

(到這這個半自動化的系統安裝已經完成,註意幾點這個實驗我事先配好了http的yum倉庫)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • EntityFramework的線程內唯一 EntityFramework的線程內唯一是通過httpcontext來實現的 EntityFrameworkCore的線程內唯一 我們都知道.net Core的資料庫上下文對象是在容器里註冊,在用到的時候通過依賴註入創建的,那要如何保證每次請求只創建一個 ...
  • 紀錄一下 假如我想要透過三元運運算元?: 傳回lambda expression 要明確轉型 ...
  • 場景 Winforn中實現ZedGraph自定義添加右鍵菜單項(附源碼下載): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100140716 Winform中實現ZedGraph中曲線右鍵顯示為中文: https://blog ...
  • .net C#調用C++ dll 主要分為以下的步驟 1、載入dll [DllImport("CallOtherLanguage.dll", EntryPoint = "create_prg", CharSet = CharSet.Unicode, CallingConvention = Calli ...
  • 場景 有一組數據list<TestDataList> 每一個TestDataList是一個對象,此對象可能有溫度數據,也可能沒有溫度數據。 有溫度數據的情況下,溫度數據屬性又是一個list,可能有溫度A、B、C等不同種類。 怎樣在這組list<TestDataList>找到共有的溫度B。 這隻是針對 ...
  • 眾所周知,現如今嵌入式非易失性存儲器基本被NOR Flash一統江湖了,但在Flash技術發明之前,EEPROM才是非易失性存儲器的霸主。EEPROM的全稱是"電可擦除可編程只讀存儲器",即Electrically Erasable Programmable Read-Only Memory,EEP... ...
  • RDPGuard是一款保護遠程桌面RDP埠不被暴力猜解的軟體,說下在使用RDP Guard中遇到的一些問題: 1.似乎D版RDPGuard 6.1.7或之後的版本,啟用IP Cloud會自動將大量IP段加入阻止列表,這是一個大坑,幸好我有其他方式可以登錄本機; 2.D版的RDPGuard 6.3. ...
  • 一 部署master節點 1.1 master節點服務 kubernetes master 節點運行如下組件: kube-apiserver kube-scheduler kube-controller-manager kube-nginx kube-apiserver、kube-scheduler ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...