生成私鑰
ssh-keygen
兩種方法,一種直接copy-id到客戶端
ssh-copy-id root@10.0.0.203
另外一種方法,copy-id到服務器,再由服務器下發公鑰到客戶端
ssh-copy-id root@10.0.0.202
scp .ssh/authorized_keys root@10.0.0.203:/root/.ssh/
二、編譯安裝dropbear實現SSH登陸node
源碼編譯安裝:
• 1、安裝開發包組:yum groupinstall 「Development tools」
• 2、下載dropbear
wget https://matt.ucc.asn.au/dropbear/dropbear-2019.78.tar.bz2
• 3、tar xf dropbear-2019.78.tar.bz2
• 4、less INSTALL README
• 5、./configure --prefix=/usr/lib/dropbear --sysconfdir=/etc/dropbear
• 6、make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"
• 7、make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" install
啓動ssh服務:
• 8、ls /usr/local/sbin/ /usr/local/bin/
• 9、/usr/lib/dropbear/sbin/dropbear -h
• 10、mkdir /etc/dropbear
• 11、/usr/lib/dropbear/bin/dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key -s 2048
• 12、/usr/lib/dropbear/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dsa_host_key
• 13、/usr/lib/dropbear/sbin/dropbear -p :2222 -F –E #前臺運行
/usr/lib/dropbear/sbin/dropbear -p :2222 #後臺運行
客戶端訪問:
• 14、ssh -p 2222 root@127.0.0.1
• 15、dbclient -p 2222 root@127.0.0.1 # ../bin/dbclient至關於ssh客戶端
三、實現單個用戶及用戶組使用sudo執行全部命令python
visudo
增長一行
magedu ALL=(ALL) ALL
magedu爲用戶名 ,ALL表示能夠在全部機器上能夠在本機上登陸,(ALL)表示表明以誰的身份執行ALL表示爲全部人 最後一個ALL 表示能夠執行全部命令 也能夠指定具體命令,如/usr/bin/ls /
%group ALL=(ALL) ALL
%group爲組名,表示屬於這組的用戶擁有的sudo權限
四、簡述rsync用於那些場景,並對比scp有什麼優勢?react
scp拷貝時,會將全部文件一次性拷貝到目標路徑,不管文件是否已存在、是否存在變化,這樣將會浪費時間和網絡資源
利用rsync複製的時候能夠實現一個增量的複製,rsync在複製前,會對比文件是否存在和是否存在變化,若是文件相同則不會複製,只複製不一樣的文件,這樣就節約時間和帶寬,適用於文件同步,網站更新類,大量文件複製等操做
五、搭建DHCP服務,實現自動獲取ip地址linux
yum install -y dhcp
rpm -ql dhcp
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
修改全局變量也能夠
option domain-name "magedu"; # dhcp顯示名稱
option domain-name-servers 114.114.114.114, 8.8.8.8; # dns
default-lease-time 600; # 最小租約時間
max-lease-time 7200; # 最大租約時間
在做用域修改變量也能夠,若是做用域有變量,就優先生效
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.100 10.0.0.120; # 分配地址範圍
option domain-name-servers ns1.internal.example.org; # 若是使用全局變量,這行刪掉
option domain-name "internal.example.org"; # 若是使用全局變量,這行刪掉
option routers 10.0.0.1; # 默認網關
option broadcast-address 10.0.0.255;
default-lease-time 600; # 若是使用全局變量,這行刪掉
max-lease-time 7200; # 若是使用全局變量,這行刪掉
}
檢查語法
dhcpd configtest
啓動服務
systemctl start dhcpd
關閉其餘dhcp服務,啓動客戶機,在服務器上查看dhcp分配記錄
cat /var/lib/dhcpd/dhcpd.leases
在客戶機上,查看dhcp信息
cat /var/lib/dhclient/dhclient.leases
六、搭建PXE實現自動化安裝系統ios
配置Centos7基於PXE的自動安裝
安裝前準備:關閉防火牆和SELINUX,DHCP服務器靜態IP
安裝軟件包
httpd tftp-server dhcp syslinux system-config-kickstart
配置文件共享服務:
systemctl enable httpd
systemctl start httpd
mkdir /var/www/html/centos/{6,7}/os/x86_64 -p
mount /dev/sr0 /var/www/html/centos/7/os/x86_64/
準備kickstart文件
cp /root/anaconda-ks.cfg /var/www/html/ks/centos7.cfg
/var/www/html/ks/centos7.cfg 注意:權限
經過system-config-kickstart製做也能夠,經過anaconda-ks.cfg修改也能夠
cdrom 修改爲 url --url=http://10.0.0.202/centos/7/os/x86_64/
graphical 修改爲 text
# System services下 添加禁用防火牆和selinux
firewall --disabled
selinux --disabled
# System bootloader configuration 修改網卡名稱eth
bootloader --append="net.ifnames=0 biosdevname=0" --location=mbr
# Partition clearing information 須要清空mbr和初始化硬盤
clearpart --all --initlabel
zerombr
reboot
# Disk partitioning information 分區策略按需
%packages 按需
%post 安裝後腳本,按需
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repos /etc/yum.repos.d/bak
cat >/etc/yum.repos.d/base.repo<<EOF
[base]
name=localyum
baseurl=http://10.0.0.7/centos/6/os/x86_64/
gpgcheck=0
EOF
echo 'PS1="\[\e[1;33m\][\u@\h \w]\\$\[\e[0m\]"'>> /etc/profile.d/env.sh
# add new user
useradd magedu
echo 123456|passwd --stdin magedu
# add ssh keygen
mkdir /root/.ssh
cat > /root/.ssh/authorized_keys<<EOF
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrNp5n3YV8n3PL1NxccKhlN/WEGFLkmcNgR76UIqOZNmJ333l8equemgR7uCEMG4PgefSj7tlPupaEbGoJn+dP12zLwOBSznWHKmci4RGxnN0mDmr8erRkoT4I/DLS7KkIi6SvfWcTA6NgTGWUQALeVIbKHYx7o4YlKhWaoZNDJnVlvAWshXKJlLj5u51m/zl+JY15HATFnFRnT5MQd+DCqMZZFIa+ntXh3ruuJRs5PN7O58U9DUfHJW+8IGiA0luaw3qWIvvJyGhnfA85fHQ/EiXcHT41s7pXp+vy93AfXw8zi18QKT5zP+EnpGkqH2eBOpkPRylyfdWPctic+g2f root@linux-node2-202
EOF
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
%end
配置tftp服務
systemctl enable tftp.socket
systemctl start tftp.socket
配置DHCP服務
vim /etc/dhcp/dhcpd.conf
option domain-name "example.com";
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.1 192.168.100.200;
filename "pxelinux.0";
next-server 192.168.100.100;
}
systemctl enable dhcpd
systemctl start dhcpd
準備啓動相關文件
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
cp /misc/cd/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/ # 關鍵文件
cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default # 啓動菜單
文件列表以下:
/var/lib/tftpboot/
├── initrd.img
├── menu.c32
├── pxelinux.0
├── pxelinux.cfg
│ └── default
└── vmlinuz
準備啓動菜單
Vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
timeout 600
menu title PXE INSTALL MENU
label auto
menu label Auto Install CentOS 7
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.100.100/ks/centos7.cfg
label manual
menu label Manual Install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.repo=http://192.168.100.100/centos/7
label local
menu default
menu label ^Boot from local drive
localboot 0xffff
到此,centos7的基於PXE的自動安裝就準備完成
配置Centos6基於PXE的自動安裝
安裝前準備:關閉防火牆和SELINUX,DHCP服務器靜態IP
1 安裝相應軟件包
yum install dhcp httpd tftp-server syslinux
chkconfig tftp on
chkconfig xinetd on
chkconfig httpd on
chkconfig dhcpd on
service httpd start
service xineted start
2 準備Yum 源和相關目錄
mkdir -pv /var/www/html/centos/{6,ks}
mount /dev/sr0 /var/www/html/centos/6
3 準備kickstart文件
/var/www/html/centos/ks/centos6.cfg
cp /root/anaconda-ks.cfg /var/www/html/ks/centos6.cfg
vim /var/www/html/ks/centos6.cfg
url --url=http://10.0.0.7/centos/6/os/x86_64
text
reboot
firewall --disabled
selinux --disabled
clearpart --all
zerombr
#repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100
#安裝包按需
#安裝後腳本按需
注意權限:
chmod 644 /var/www/html/centos/ks/centos6.cfg
4 準備相關的啓動文件
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cd /misc/cd/images/pxeboot/
cp vmlinuz initrd.img /var/lib/tftpboot
Cd /misc/cd/isolinux/
cp boot.msg vesamenu.c32 splash.jpg /var/lib/tftpboot
5 準備啓動菜單文件
cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32 指定菜單風格
#prompt 1
timeout 600
display boot.msg
menu background splash.jpg
menu title Welcome to wang CentOS 6
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
label auto
menu label ^Automatic Install Centos6
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.100.100/centos/ks/centos6.cfg
label manual
menu label ^Manual Install Centos
kernel vmlinuz
append initrd=initrd.img inst.repo=http://192.168.100.100/centos/6
label local
menu default
menu label Boot from ^local drive
localboot 0xffff
目錄結構以下:
tree /var/lib/tftpboot/
/var/lib/tftpboot/
├── boot.msg
├── initrd.img
├── pxelinux.0
├── pxelinux.cfg
│ └── default
├── splash.jpg
├── vesamenu.c32
└── vmlinuz
6 配置dhcp服務
cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
option domain-name "magedu.com";
option domain-name-servers 192.168.100.1;
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.1 192.168.100.200;
option routers 192.168.100.1;
filename "pxelinux.0";
next-server 192.168.100.100;
}
service dhcpd start
配置基於PEX的Centos6和Centos7的自動安裝
掛載六、7的安裝文件到相應目錄
添加新光驅
scandisk
lsblk
mount /dev/cdrom /www/html/centos/6/os/x86_64/
mount /dev/cdrom1 /www/html/centos/7/os/x86_64/
拷貝應答文件ks6-mini.cfg到相關目錄
cp ks6-mini.cfg /var/www/html/centos/6/ks6-mini.cfg
在tftpboot文件夾下新建linux6和Linux7兩個目錄
mkdir /var/lib/tftpboot/linux{6,7}
將7的關鍵文件拷貝到linux7目錄下
mv vmlinuz initrd.img linux7
將6的關鍵文件拷貝到linux6下
cp /var/www/html/centos/6/os/x86_64/isolinux/{vmlinuz,initrd.img} linux6/
修改啓動菜單
vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
timeout 600
menu title PXE INSTALL MENU
label auto
menu label ^Auto Install CentOS 7
kernel linux7/vmlinuz
append initrd=linux7/initrd.img ks=http://10.0.0.7/centos/7/ks7-mini.cfg
label manual
menu label ^Auto Install CentOS 6
kernel linux6/vmlinuz
append initrd=linux6/initrd.img ks=http://10.0.0.7/centos/6/ks6-mini.cfg
label local
menu default
menu label ^Boot from local drive
localboot 0xffff
七、搭建Cobbler實現自動化安裝系統web
cobbler安裝
安裝epel源
yum install epel-release
yum install cobbler dhcp
設置相關服務爲開機自啓
systemctl enable httpd dhcpd tftp cobblerd
配置cobbler服務
systemctl start cobblerd tftp httpd
cobbler check
按照提示依次修改配置就能夠完成整個自動安裝的配置
1.vim /etc/cobbler/settings
384行,修改127.0.0.1爲服務器真實ip
2.vim /etc/cobbler/settings
272行,修改next_server爲真實ip
3.vim /etc/cobbler/settings
101行,default_password_crypted: "$1$fx2SC2oE$Voz8JG3zk1dGxAvsNoH0w."
用openssl passwd -1生成新口令,將新口令替換默認口令
4.vim /etc/cobbler/settings
242行,manage_dhcp: 0 修改成1 cobbler自動配置dhcp
5.根據提示安裝pykickstart
yum install pykickstart
6.使用cobbler get-loaders下載相關配置文件
自動下載文件到/var/lib/cobbler/loaders
執行cobbler sync,同步/var/lib/cobbler/loaders的文件到/var/lib/tftpboot/下
7.修改cobbler dhcp模板文件
rpm -ql cobbler|grep dhcp
vim `rpm -ql cobbler|grep dhcp`
把網段、ip相關信息修改爲正確的
8.重啓cobbler服務
systemctl restart cobbler
9.cobbler sync從新同步,就會同時修改並啓動dhcp服務
定義應答文件和yum源
cobbler import光盤就能夠自動生成應答文件和yum源
cobbler import --help
Options:
-h, --help show this help message and exit
--arch=ARCH OS architecture being imported # 32/64位
--breed=BREED the breed being imported
--os-version=OS_VERSION
the version being imported
--path=PATH local path or rsync location # 來源路徑
--name=NAME name, ex 'RHEL-5' # 菜單選項名稱
--available-as=AVAILABLE_AS
tree is here, don't mirror
--kickstart=KICKSTART_FILE # 應答文件
assign this kickstart file
--rsync-flags=RSYNC_FLAGS
pass additional flags to rsync
cobbler import --path=/mnt --name=Centos-7.5-x86_64 --arch=x86_64
會將光盤等內容複製到/var/www/cobbler/ks_mirror/定義的文件名/ 這個路徑下
du -sh /var/www
tree -d -L 2 /var/www/
/var/www/
├── cgi-bin
├── cobbler
│ ├── images
│ ├── ks_mirror
│ ├── links
│ ├── localmirror
│ ├── misc
│ ├── pub
│ ├── rendered
│ ├── repo_mirror
│ └── svc
└── html
再生成個centos6的
cobbler import --path=/mnt --name=Centos-7.5-x86_64 --arch=x86_64
cobbler sync同步
cat /var/lib/tftpboot/pxelinux.cfg/default # 能夠看到菜單已更新
自定義ks文件
不修改kickstart文件,cobbler會自動生成一個默認的最小化安裝配置文件
若是須要自定義ks文件
須要將ks文件上傳至/var/lib/cobbler/kickstarts/
可修改配置文件中的url
url --url=$tree
查看cobbler現有的源列表
cobbler distro list # 安裝菜單選項
cobbler profile list # 安裝方法列表
將cobbler菜單項與安裝配置文件關聯
cobbler profile add --name=Centos-7.5-x86_64-mini --distro=Centos-7.5-x86_64 --kickstart=/var/lib/cobbler/kickstarts/ks7-mini.cfg
cat /var/lib/tftpboot/pxelinux.cfg/default
能夠看到剛纔添加的菜單項
刪除菜單
cobbler distro list
cobbler profile remove --name=菜單項中須要刪除的列表名稱
菜單更名
cobbler distro list
cobbler profile rename --name=xxx --newname=xxxx
圖形配置cobbler
安裝cobbler-web
yum install cobbler-web
配置文件
rpm -qc cobbler-web
/etc/httpd/conf.d/cobbler_web.conf
訪問cobbler-web
https://10.0.0.202/cobbler_web
登錄cobbler/cobbler
訪問報500錯誤解決方法
緣由,Django版本不符
#下載pip.py
wget https://bootstrap.pypa.io/get-pip.py
#調用本地python運行pip.py腳本
python get-pip.py
#安裝pip
pip install Django==1.8.9
#查看pip版本號
python -c "import django; print(django.get_version())"
#重啓httpd
systemctl restart httpd
修改驗證方式
vim /etc/cobbler/modules.conf
23 module = authn_configfile # 定義了驗證方式
8 # authn_configfile -- use /etc/cobbler/users.digest (for basic setups) # 定義了文件路徑
cat /etc/cobbler/users.digest
cobbler:Cobbler:a2d6bae81669d707b72c0bd9806e01f3 # 定義了用戶名密碼,中間大寫的Cobbler是標識了做用域
新建用戶
htdigest --help
htdigest /etc/cobbler/users.digest Cobbler admin # 在users.digest文件中的Cobbler域中新建admin帳號,域就是生效的軟件
輸入兩遍密碼,用新用戶名密碼登錄
修改驗證方式爲PAM
vim /etc/cobbler/modules.conf
23 module = authn_configfile
module = authn_pam
同時,還會將用戶文件放到/etc/cobbler/users.conf中
useradd -s /sbin/nologin cobbleradmin # 新建用戶
echo 123456|passwd --stdin cobbleradmin
vim /etc/cobbler/users.conf
[admins]
admin = "cobbleradmin"
systemctl restart cobblord