一个专业运维
技术分享网站!

SecureCRT SSH 主机Key exchange failed 错误 解决方法

Jack.Liu阅读(25)

背景:SecureCRT 的SSH正常使用过程中,突然出现:

Key exchange failed。

No compatible hostkey.The server supports these methods:

RSA,rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519

 

解决步骤:

1.先是重启服务器的sshd:service sshd restart

2.删除secureCRT的SSH2.ini文件

 

3.重启secureCRT

4.恢复正常

Linux系统grub加密方式

Jack.Liu阅读(5)

一.为grub设置明文密码案例

1>.修改”/boot/grub/grub.conf”配置文件

[root@localhos ~]# cat /boot/grub/grub.conf 
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/vg_node200-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=1

timeout=5

splashimage=(hd0,0)/grub/windows.xpm.gz

password yinzhengjie      #此处我指定密码为"yinzhengjie"

title CentOS 6 (2.6.32-754.el6.x86_64)
    root (hd0,0)
    kernel /vmlinuz-2.6.32-754.el6.x86_64 ro root=/dev/mapper/vg_node200-lv_root nomodeset rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_node200/
lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M rd_LVM_LV=vg_node200/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet    
  initrd /initramfs-2.6.32-754.el6.x86_64.img

title CentOS 8 (4.6.32-754.el6.x86_64)
    kernel (hd0,0)/vmlinuz-2.6.32-754.el6.x86_64 ro root=/dev/mapper/vg_node200-lv_root nomodeset rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_n
ode200/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M rd_LVM_LV=vg_node200/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM    
  initrd (hd0,0)/initramfs-2.6.32-754.el6.x86_64.img
[root@yinzhengjie ~]#

2>.重启操作系统(我们发现启动操作系统时没有”a”,”c”,”e”的相关选项,只有一个”p”选项)

[root@localhos ~]# reboot 

Broadcast message from root@yinzhengjie
    (/dev/pts/0) at 22:07 ...

The system is going down for reboot NOW!
[root@localhos ~]#

3>.按字母“p”输入grub.conf中设置的密码

4>.密码输入正确会进入grub管理菜单

 5>.温馨提示

从上面的操作可以为grub设置密码,但如果别人通过U盘启动或者光盘启动进入救援模式这就尴尬了,直接跳过了咱们设置的grub啦!
因此,在生产环境中配置好上述操作后,应该禁用掉指定的USB接口,只留住一个接口给键盘使用即可,可能这个时候有人又会说
直接来一个拓展坞工具不就得了,一个USB接口可用扩展成多个可用了,所以有时候你还不得不禁用所有USB接口。
但玩过计算机的都知道,尽管你禁用了所有USB接口依旧还不安全,只要找一个IDC工作人员把服务器查查看,适当的换一些硬件,
我们就会发现没有绝对的安全,只有攻防的对垒。

 

二.为grub设置密文密码案例

1>.生成grub口令

[root@localhos ~]# grub-md5-crypt
Password: 
Retype password: 
$1$ejtsg0$qylYnYONrLdC56LXHIJ4M1
[root@localhos ~]#

2>.使用md5加密不推荐(美国国家安全局和美国国家标准技术局一起设计的一个用于电子签名的非常核心的算法,但MD5和SHA-1加密算法被我国密码学家王小云破解)

[root@localhos ~]# cat /boot/grub/grub.conf 
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/vg_node200-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=1

timeout=5

splashimage=(hd0,0)/grub/windows.xpm.gz

password --md5 $1$ejtsg0$qylYnYONrLdC56LXHIJ4M1

title CentOS 6 (2.6.32-754.el6.x86_64)
    root (hd0,0)
    kernel /vmlinuz-2.6.32-754.el6.x86_64 ro root=/dev/mapper/vg_node200-lv_root nomodeset rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_node200/
lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M rd_LVM_LV=vg_node200/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet    
  initrd /initramfs-2.6.32-754.el6.x86_64.img

title CentOS 8 (4.6.32-754.el6.x86_64)
    kernel (hd0,0)/vmlinuz-2.6.32-754.el6.x86_64 ro root=/dev/mapper/vg_node200-lv_root nomodeset rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_n
ode200/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M rd_LVM_LV=vg_node200/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM    
  initrd (hd0,0)/initramfs-2.6.32-754.el6.x86_64.img
[root@localhos ~]#

3>.推荐使用sha512算法进行加密

[root@localhos ~]# grub-crypt 
Password: 
Retype password: 
$6$bNlXV2xei8gteGzA$v4VFuBvn0svHHIbsBFzfdDnHTlUsZgVIXdLHqTRyAd7a9SFHGC4G87D7JNBKj5i3fGsEhS2vCgVbrO0Q34a7E1
[root@localhos ~]#

4>.将sha512算法写入”/boot/grub/grub.conf”配置文件

[root@localhos ~]# cat /boot/grub/grub.conf 
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/vg_node200-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=1

timeout=5

splashimage=(hd0,0)/grub/windows.xpm.gz

password --encrypted $6$bNlXV2xei8gteGzA$v4VFuBvn0svHHIbsBFzfdDnHTlUsZgVIXdLHqTRyAd7a9SFHGC4G87D7JNBKj5i3fGsEhS2vCgVbrO0Q34a7E1

title CentOS 6 (2.6.32-754.el6.x86_64)
    root (hd0,0)
    kernel /vmlinuz-2.6.32-754.el6.x86_64 ro root=/dev/mapper/vg_node200-lv_root nomodeset rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_node200/
lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M rd_LVM_LV=vg_node200/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet    
  initrd /initramfs-2.6.32-754.el6.x86_64.img

title CentOS 8 (4.6.32-754.el6.x86_64)
    kernel (hd0,0)/vmlinuz-2.6.32-754.el6.x86_64 ro root=/dev/mapper/vg_node200-lv_root nomodeset rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_n
ode200/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M rd_LVM_LV=vg_node200/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM    
  initrd (hd0,0)/initramfs-2.6.32-754.el6.x86_64.img
[root@localhos ~]#

如何删除密码?

想要删除密码,直接删除/boot/grub2/user.cfg文件就可以。

[root @localhost~]#vim /boot/grub/grub.conf 删除password这一行即可清除grub密码

 

 

 

 

 

 

 

 

 

 

liunx 内存释放

Jack.Liu阅读(6)

一般linux已经对内存管理的很好,出现的问题可能为应用上的,比如内存泄漏等:下面是在系统层面的操作:

首先,查看/proc/sys/vm/drop_caches的值

[root@server test]# cat /proc/sys/vm/drop_caches

0

值默认为0

 

然后,运行sync命令

[root@server test]# sync

手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)

最后,输入手动释放内存的命令

[root@server test]# echo 1 > /proc/sys/vm/drop_caches

drop_caches的值可以是0-3之间的数字,代表不同的含义:
0:不释放(系统默认值)
1:释放页缓存
2:释放dentries和inodes
3:释放所有缓存

释放完内存后改回去让系统重新自动分配内存
echo 0 >/proc/sys/vm/drop_caches

free -m #看内存是否已经释放掉了。

如果我们需要释放所有缓存,就输入下面的命令:
[root@server test]# echo 3 > /proc/sys/vm/drop_caches

Centos7 修改网卡为eth0

Jack.Liu阅读(7)

默认centos7安装不设置内核版本,会影响网卡的名称。所以为了我们统一管理我们需要将网卡名称修改为eth开头

第一步查看服务器版本

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

第二步查看当前网卡名称

我们可以看到当前网卡名称都是en0开头的,不方便我们集中管理

[root@localhost ~]# ip a
1: lo:  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: eno1:  mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether f4:1d:6b:86:8a:09 brd ff:ff:ff:ff:ff:ff
3: eno2:  mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether f4:1d:6b:86:8a:0a brd ff:ff:ff:ff:ff:ff
4: eno3:  mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether f4:1d:6b:86:8a:0b brd ff:ff:ff:ff:ff:ff
    inet 10.4.81.93/24 brd 10.4.81.255 scope global noprefixroute eno3
       valid_lft forever preferred_lft forever
    inet6 fe80::687f:25f8:b435:887b/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
5: eno4:  mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether f4:1d:6b:86:8a:0c brd ff:ff:ff:ff:ff:ff

第三步进入网卡配置文件

将所有的文件mv 更换名称

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
ifcfg-eno1  ifcfg-lo     ifdown-ippp  ifdown-ppp     ifdown-TeamPort  ifup-bnep  ifup-isdn   ifup-ppp     ifup-TeamPort     network-functions
ifcfg-eno2  ifdown       ifdown-ipv6  ifdown-routes  ifdown-tunnel    ifup-eth   ifup-plip   ifup-routes  ifup-tunnel       network-functions-ipv6
ifcfg-eno3  ifdown-bnep  ifdown-isdn  ifdown-sit     ifup             ifup-ippp  ifup-plusb  ifup-sit     ifup-wireless
ifcfg-eno4  ifdown-eth   ifdown-post  ifdown-Team    ifup-aliases     ifup-ipv6  ifup-post   ifup-Team    init.ipv6-global
[root@localhost network-scripts]#
[root@localhost network-scripts]# mv ifcfg-eno1 ifcfg-eth0
[root@localhost network-scripts]# mv ifcfg-eno2 ifcfg-eth1
[root@localhost network-scripts]# mv ifcfg-eno3 ifcfg-eth2
[root@localhost network-scripts]# mv ifcfg-eno4 ifcfg-eth3

第四步修改网卡信息

需要修改的主要几点

1.NAME

2.DEVICE

3.BOOTPROTO [dhcp or static or none]none和static需要在输入ip地址

4.添加HWADDR 默认网卡没有mac地址,需要添加mac地址

image_1d973tk0r17k91o41brp1ee11qjap.png-132.5kB

第五步修改内核参数

[root@localhost network-scripts]# vi /etc/sysconfig/grub

在倒数第二行quiet前面添加net.ifnames=0 biosdevname=0

image_1d973vcu41cpv15241h7l3ju1p2k16.png-85.7kB

我们还可以在装系统的时候配置

光标移动到Install CentOS上,按tab键 输入net.ifnames=0 biosdevname=0 回车

image_1d97aftiu14lmkqh6pb11b6fad1j.png-21.2kB

第六步生成启动菜单

[root@localhost network-scripts]#  grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-957.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-957.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-f9f84382fb844c0a84e9ee9b2a2906b5
Found initrd image: /boot/initramfs-0-rescue-f9f84382fb844c0a84e9ee9b2a2906b5.img
done

第七步验证是否修改成功

[root@localhost ~]# reboot #重启生效
centos7默认不支持ifconfig,如果需要ifconfig请yum install net-t

修改完毕!

8DBD4A93-15BF-4F34-B5D8-E9908CE368E0.png-568.3kB

83092637-F388-4307-9682-2F0DFF534624.png-406.4kB

Centos7离线升级openssh 8.4

Jack.Liu阅读(15)

openssh 低版本存在漏洞,所以需要升级到最新版,由于客户是离线环境所以采用离线安装。

下载依赖openssl、zlib、openssh

在有网络的主机上下载依赖 拷贝到目标服务器

升级前请 看注意事项 看注意事项 看注意事项

wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/openssh-8.4p1.tar.gz
wget http://www.zlib.net/zlib-1.2.11.tar.gz
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz

解压升级包

tar –no-same-owner -zxvf zlib-1.2.11.tar.gz
tar –no-same-owner -zxvf openssh-8.4p1.tar.gz
tar –no-same-owner -zxvf openssl-1.1.1g.tar.gz

编译安装zlib

cd zlib-1.2.11
./configure –prefix=/usr/local/zlib
make && make install

编译安装openssl

cd openssl-1.1.1g
./config –prefix=/usr/local/ssl -d shared
make && make install
echo ‘/usr/local/ssl/lib’ >> /etc/ld.so.conf
ldconfig -v

安装openssh

cd openssh-8.4p1
./configure –prefix=/usr/local/openssh –with-zlib=/usr/local/zlib –with-ssl-dir=/usr/local/ssl
make && make install

sshd_config文件修改

echo ‘PermitRootLogin yes’ >>/usr/local/openssh/etc/sshd_config
echo ‘PubkeyAuthentication yes’ >>/usr/local/openssh/etc/sshd_config
echo ‘PasswordAuthentication yes’ >>/usr/local/openssh/etc/sshd_config

备份原有文件,并将新的配置复制到指定目录

mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config
mv /usr/sbin/sshd /usr/sbin/sshd.bak
cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
mv /usr/bin/ssh /usr/bin/ssh.bak
cp /usr/local/openssh/bin/ssh /usr/bin/ssh
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
mv /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak
cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub

启动sshd

service sshd restart
ssh -V
# OpenSSH_8.4p1, OpenSSL 1.1.1g 21 Apr 2020

注意事项

  • 安装openssl 需要安装perl 安装完成后如果没有pod2html 需要手动拷贝pod2html到/usr/local/bin 我是通过虚拟机安装相同的操作系统的开发套件然后复制的。
  • 如果有堡垒机,重启openssh会出现无法访问情况,原因是堡垒机记录了ssh连接记录 需要删除堡垒机账户下.ssh/know_host 文件 当然大部分是没有这个权限的,所以需要更换未连接过改服务器的堡垒机账号。

Linux 如何防止暴力破解

Jack.Liu阅读(22)

什么是暴力破解,简单来说就是对一个服务器进行无数次尝试登陆,并用不同的密码进行登陆直到可以登陆成功。暴力破解的基本步骤可以分为以下几步:

1. 找到对应的linux服务器    Ip地址

2.扫描端口号:22    nmap扫描端口

3.开始暴力破解 :  一般root      破解你的密码  登录你的机器   破坏      盗取你的重要的数据

对于这种情况我们有以下5种解决办法:

1. 将密码设置复杂

2. 更改端口号

3. 禁止root用户登陆

4. 编写脚本检查/var/log/secure访问日志文件。

 

编写脚本检查/var/log/secure访问日志文件
思路:通过统计日志文件中的登陆失败的ip,并将达到阈值的ip添加到/etc/hosts.deny来拒绝某个ip的再次访问。

cat ssh_pervent.sh

Bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /sshPrevent/black.txt
DEFINE="2"
for i in `cat  /sshPrevent/black.txt`
do
        IP=`echo $i |awk -F= '{print $1}'`
        NUM=`echo $i|awk -F= '{print $2}'`
        if [ $NUM -gt $DEFINE ];
        then
         grep $IP /etc/hosts.deny > /dev/null
          if [ $? -gt 0 ];
          then
          echo "sshd:$IP" >> /etc/hosts.deny
          fi
        fi
done

 

使用crontabp实时任务,每分钟执行一次:*/1 * * * * /bin/bash /sshPrevent/ssh_pervent.sh

搭建自动化运维管理平台OpsManage部署

Jack.Liu阅读(17)

1. Opsmanage介绍


OpsManage 是一款进行设备资产、代码部署、应用部署、计划任务的管理平台,结合ansible进行自动化运维,可以在很大程度上解放运维工程师的双手。类似的运维平台还有腾讯的蓝鲸运维管理平台。

项目源码https://github.com/welliamcao/OpsManage

开发语言与框架:

编程语言:Python2.7 + HTML + JScripts

前端Web框架:Bootstrap

后端Web框架:Django

后端Task框架:Celery + Redis

OpsManage环境要求:

编程语言:Python 2.7

操作系统:CentOS 6 +

Ansible版本:2.0 +

部署平台及节点服务器:Rsync 3+

MySQL版本:5.1-5.6

OpsManage功能说明:

 

安装所需包

 

# yum install -y zlib zlib-devel readline-devel sqlite-devel bzip2-devel openssl-devel gdbm-devel libdbi-devel ncurses-libs kernel-devel libxslt-devel libffi-devel python-devel zlib-devel  sshpass gcc git -y
# yum install -y  http://www.percona.com/downloads/percona-release/redhat/0.1-6/percona-release-0.1-6.noarch.rpm
# yum install -y Percona-Server-server-56 install Percona-Server-devel-56
# mkdir /software
# cd !$

安装python

因为是CentOS7,所以这一步我省略了。

# wget http://mirrors.sohu.com/python/2.7.12/Python-2.7.12.tgz      (Centos 7 不用安装python2.7,因为已经默认自带python2.7)

# tar -zxf Python-2.7.12.tgz 

# cd Python-2.7.12

# ./configure

# make all

# make install 

# make clean

# make distclean

# mv /usr/bin/python /usr/bin/python2.6.6

# ln -s /usr/local/bin/python2.7 /usr/bin/python

# vim /usr/bin/yum           #做下面修改     
#!/usr/bin/python2.6.6

# vim /usr/libexec/urlgrabber-ext-down         #做下面修改
#!/usr/bin/python2.6.6

安装easy_install

# cd /software

# wget --no-check-certificate  https://pypi.python.org/packages/f7/94/eee867605a99ac113c4108534ad7c292ed48bf1d06dfe7b63daa51e49987/setuptools-28.0.0.tar.gz#md5=9b23df90e1510c7353a5cf07873dcd22

# tar -zxf setuptools-28.0.0.tar.gz

# cd setuptools-28.0.0

# python setup.py install

安装pip

# cd /software

# wget --no-check-certificate https://github.com/pypa/pip/archive/1.5.5.tar.gz -O pip-1.5.5.tar.gz

# tar -zxf pip-1.5.5.tar.gz

# cd pip-1.5.5

# python setup.py install

# pip install -U pip      #升级pip,这一步不要省略

安装模块

 cd /mnt/

# git clone https://github.com/welliamcao/OpsManage.git

# cd /mnt/OpsManage/

# pip install -r requirements.txt           

# easy_install paramiko==2.4.1

安装redis

# cd /software/

# wget http://download.redis.io/releases/redis-3.2.8.tar.gz

# tar -zxf redis-3.2.8.tar.gz

# cd redis-3.2.8

# make

# make install

# vim redis.conf           #做下面修改
daemonize yes
loglevel warning
logfile "/var/log/redis.log"
bind 127.0.0.1 192.168.30.128(服务器IP)

# cd ..

# mv redis-3.2.8 /usr/local/redis

# /usr/local/redis/src/redis-server /usr/local/redis/redis.conf

配置mysql

# vim /etc/my.cnf

[mysqld]
character_set_server = utf8

# systemctl start mysqld

# mysql -uroot -p         #初始密码为空,直接回车就行;或 grep "password" /var/log/mysqld.log 查看初始密码

mysql> create database opsmanage DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

mysql> grant all privileges on opsmanage.* to root@'%' identified by '123456789';

mysql> flush privileges;

mysql> \q

#systemctl start msqld

配置opsmanage

# cd /mnt

# git clone  https://github.com/welliamcao/OpsManage.git

# cd OpsManage/OpsManage/

# vim settings.py         #做下面修改

BROKER_URL = 'redis://127.0.0.1:6379/4'          #修改成自己的配置,格式是redis://[:password]@host:port/db
REDSI_KWARGS_LPUSH = {"host":'127.0.0.1','port':6379,'db':4}         #修改成自己的配置

CHANNEL_LAYERS = {
    "default": {
       "BACKEND": "asgi_redis.RedisChannelLayer",  # use redis backend
       "CONFIG": {
            "hosts": [("127.0.0.1", 6379)],  #无密码方式
            "channel_capacity": {
                                   "http.request": 1000,
                                   "websocket.send*": 10000,
                                },
            "capacity": 10000,
           },
       "ROUTING": "OpsManage.routing.channel_routing",  # load routing from our routing.py file
       },
}

DATABASES = {
    'default': {
        'ENGINE':'django.db.backends.mysql',
        'NAME':'opsmanage',
        'USER':'root',
        'PASSWORD':'P@ssw0rd',
        'HOST':'127.0.0.1',
        'PORT':'3306'
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),         #修改成自己的配置,这一步配置错误会导致django无法连接数据库
    }
}

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ["/mnt/OpsManage/OpsManage/static/",'/mnt/OpsManage/OpsManage/templates/'],           #修改成自己的配置
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

STATIC_URL = '/static/'
STATICFILES_DIRS = (
     '/mnt/OpsManage/OpsManage/static/',            #修改成自己的配置
    )

SFTP_CONF = {
             'port':22,
             'username':'root',
             'password':'P@ssw0rd',
             'timeout':30
             }                  #修改成自己的配置

生成数据表与管理员账户

# cd /mnt/OpsManage/
# python manage.py makemigrations OpsManage
# python manage.py makemigrations wiki
# python manage.py makemigrations orders
# python manage.py makemigrations filemanage
# python manage.py migrate
# python manage.py createsuperuser

启动部署平台

# cd /mnt/OpsManage/
# python manage.py runserver 0.0.0.0:8000

配置Celery异步任务系统

# echo_supervisord_conf > /etc/supervisord.conf
# export PYTHONOPTIMIZE=1
# vim /etc/supervisord.conf
最后添加
[program:celery-worker-default]
command=/usr/bin/python manage.py celery worker --loglevel=info -E -Q default
directory=/mnt/OpsManage
stdout_logfile=/var/log/celery-worker-default.log
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
numprocs=1
 
[program:celery-worker-ansible]
command=/usr/bin/python manage.py celery worker --loglevel=info -E -Q ansible
directory=/mnt/OpsManage
stdout_logfile=/var/log/celery-worker-ansible.log
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
numprocs=1
 
 
[program:celery-beat]
command=/usr/bin/python manage.py celery beat
directory=/mnt/OpsManage
stdout_logfile=/var/log/celery-beat.log
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
numprocs=1
 
[program:celery-cam]
command=/usr/bin/python manage.py celerycam
directory=/mnt/OpsManage
stdout_logfile=/var/log/celery-celerycam.log
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
numprocs=1
 
 
启动celery
# /usr/bin/supervisord -c /etc/supervisord.conf
# supervisorctl status #要检查是否都是running状态

登录

浏览器输入:http://192.168.70.128:8000

image.png

登陆进来是用户中心

image.png

  • 查看仪表板

image.png

查看资产管理:

image.png

查看代码发布

image.png

查看任务管理

image.png查看应用部署

image.png

Vmware 安装 ESXI 6.7系统

Jack.Liu阅读(17)

一、创建虚拟机

1.新建虚拟机

image.png

2.选择自定义(高级)

image.png

3.打开硬件兼容性,选择ESXi6.5版本后,可以看到此版本兼容产ESXi6.7和ESXi6.5版本。

image.png

4.选择安装程序光盘映像文件。选择我们下载好的ESXi6.7镜像文件。

image.png

5.然后,新建一个文件夹,存放虚拟机。

image.png

6.创建完成后,选择下一步。

image.png

7.完成后面虚拟机向导设置(截图省略)

二、安装ESXI

1、虚拟机开机,进行ESXi6.7安装。

Vmware 安装 ESXI 6.7系统 Linux 第6张

Vmware 安装 ESXI 6.7系统 Linux 第6张

2、按Enter Continue。

 

image.png

3、按F1 接受并继续

image.png

4、选择安装硬盘,如果服务器有多个硬盘,注意选择硬盘位置。

image.png

5、选择键盘默认的US Default

image.png

6、创建系统密码

image.png

7、按F11 进行系统安装

image.png

8、ESXi 6.7系统正在安装

image.png

9、安装完成后,按Enter,重新启动虚拟机

image.png

10、ESXi 6.7系统安装完成

image.png

11、在网页中输入ESXi系统IP地址,打开ESXi 6.7WEB界面。

https://192.168.224.131/ui/#/login

image.png

12、登录到ESXi6.7 WEB界面了,可以通过此界面,创建虚拟机等操作。

image.png

image.png

image.png

Linux修改 openssh 版本号

Jack.Liu阅读(114)

问题描述:

由于目前官网一直未发布openssh 8.4的版本,扫描设备,都是依据软件的版本号探测的,因此避免扫描设备检测,修改软件版本号实现其目的!
//查看 sshd 位置
#which sshd
//备份sshd文件
#cp /sbin/sshd /sbin/sshd.bak.20200909
//搜索版本信息
#strings /sbin/sshd | grep OpenSSH
//替换版本信息
sed -i 's/OpenSSH_8.3p1/OpenSSH_8.4p1/g' /sbin/sshd
//重启sshd
#service sshd restart
#systemctl restart sshd.service
sshd   -V   //显示版本号

Linux-添加路由

Jack.Liu阅读(57)

一:使用 route 命令添加

使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法:

//添加到主机的路由

# route add –host 192.168.1.11 dev eth0

# route add –host 192.168.1.12 gw 192.168.1.1

//添加到网络的路由

# route add –net 192.168.1.11 netmask 255.255.255.0 eth0

# route add –net 192.168.1.11 netmask 255.255.255.0 gw 192.168.1.1

# route add –net 192.168.1.0/24 eth1

//添加默认网关

# route add default gw 192.168.2.1

//删除路由

# route del –host 192.168.1.11 dev eth0

二:在linux下设置永久路由的方法:

1.在/etc/rc.local里添加

方法:

route add -net 192.168.3.0/24 dev eth0

route add -net 192.168.2.0/24 gw 192.168.2.254

2.在/etc/sysconfig/network里添加到末尾

方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev

3./etc/sysconfig/static-routes : (没有static-routes的话就手动建立一个这样的文件)

any net 192.168.3.0/24 gw 192.168.3.254

any net 10.250.228.128 netmask 255.255.255.192 gw 10.250.228.129

4.开启 IP 转发:

# echo “1” >/proc/sys/net/ipv4/ip_forward (临时)

# vi /etc/sysctl.conf –> net.ipv4.ip_forward=1 (永久开启)

如果在rc.local中添加路由会造成NFS无法自动挂载问题,所以使用static-routes的方法是最好的。无论重启系统和service network restart 都会生效

按照linux启动的顺序,rc.local里面的内容是在linux所有服务都启动完毕,最后才被执行的,也就是说,这里面的内容是在netfs之后才被执行的,那也就是说在netfs启动的时候,服务器上的静态路由是没有被添加的,所以netfs挂载不能成功。

static-routes文件又是什么呢,这个是network脚本执行时调用的一个文件,这个文件的放置在/etc/sysconfig目录下,在network脚本中的位置是:

# Add non interface-specific static-routes.

if [ -f /etc/sysconfig/static-routes ]; then

grep “^any” /etc/sysconfig/static-routes | while read ignore args ; do

/sbin/route add -$args

done

fi

从这段脚本可以看到,这个就是添加静态路由的方法,static-routes的写法是

any net 192.168.0.0/16 gw 网关ip

这样的话,在启动network脚本的时候路由就自动添加上了,又因为network是在netfs前面启动的,自然在挂载nfs的时候就正常了。

这 样看来,如果需要添加静态路由,使用static-routes文件要比使用rc.local好,而且当改变了网络配置,需要重启network脚本的时 候,相应的静态路由是可以自动添加上的,但这时如果使用rc.local的话,在重启network服务的时候,原本添加好的静态路由就消失了。