第十週做業

一、實現sshd免密登陸html

生成私鑰
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.bz23、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 204812、/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.115、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
        
相關文章
相關標籤/搜索