Centos7下通过grub2引导进行网络自动重装系统

Shell大致流程

1.获取网络IP配置参数

2.写入自定义grub引导内核

 2.1 http://103.xxx.xxx.xxx/kickstart.php/rh?end=1&ethworkaround=1是预设定的anaconda-ks自动响应安装脚本。
3.修改grub默认配置参数等待时间和指定引导顺序。

4. 重新生成grub2配置

5.重启等待安装完成。

最后建议在NoVNC或者IPMi辅助的情况下使用。

vmlinuz的网络参数还有一种写法是 ip=address::gateway:netmask:hostname:interface:method

getETH=`ip -4 route list 0/0 |awk '{ print $5 }'`
getGATEWAY=`ip -4 route list 0/0 |awk '{ print $3 }'`
getNETMASK=`ifconfig $getETH | awk '/mask /{ print $4;}'`
getIPADDR=`ifconfig $getETH | awk '/inet /{ print $2;}'`

cat>>/etc/grub.d/40_custom<<EOF
menuentry 'Netinstall' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod xfs
set root='hd0,gpt2'
linux16 /vmlinuz ro ks='http://103.xxx.xxx.xxx/kickstart.php/rh?end=1&ethworkaround=1' net.ifnames=0 biosdevname=0 crashkernel=auto gateway=$getGATEWAY ip=$getIPADDR nameserver=8.8.8.8 ksdevice=$getETH  netmask=$getNETMASK
initrd16 /initrd.img
}
EOF
 sed -i 's/GRUB_TIMEOUT=5/GRUB_TIMEOUT=60/g'  /etc/default/grub
 sed -i 's/GRUB_DEFAULT=saved/GRUB_DEFAULT=Netinstall/g'  /etc/default/grub
 grub2-mkconfig --output=/boot/grub2/grub.cfg
 reboot

RouterOS导入key登陆ssh

Linux或者Mac OS生成一个key

ssh-keygen -t rsa

用scp上传到Mikrotik

scp -P端口 ~/.ssh/id_rsa.pub [email protected]:id_rsa.pub

在Mikrotik内导入key

[[email protected]] > /user ssh-keys import public-key-file=id_rsa.pub user=admin

打印查看

[[email protected]] > /user ssh-keys print
Flags: R - RSA, D - DSA        
 #   USER                       BITS KEY-OWNER        
 0 R admin                      2048 XXXXXXX

ipmitool获取mac地址

抓取主板第一个网卡mac地址

ipmitool  raw 0x30 0x21 | tail -c 18 |sed 's/ /:/g'

抓取BMC网口mac地址

ipmitool raw 0x0c 0x02 0x01 0x05 0x00 0x00|tail -c18| sed 's/ /:/g'
or
ipmitool lan print | grep "MAC Address" |tail -c18

转载:How To Connect To Cisco Devices Via Serial Port Using GNU/Linux

原文链接 :https://acidborg.wordpress.com/2010/12/30/how-to-connect-to-cisco-devices-via-serial-port-using-gnulinux/
原文标题:How To Connect To Cisco Devices Via Serial Port Using GNU/Linux

Filed under: Linux, SysAdmin — acidborg @ 10:17
Description: to connect your computer to a Cisco device via its console port, you usually need a RJ45 rolled cable. You can use a RJ-45 to DB-9 Female if your computer has a serial port.

RJ-45 to DB-9 Female

To communicate through the serial port with the Cisco device, you need Minicom, a terminal emulator software.

阅读剩余部分...

RouterOS软路由常用命令

修改用户密码

[[email protected]]>/user                               #进入操作路径
[[email protected]]/user>print                           #显示RouterOS用户
[[email protected]]/user>set admin password=123456        #修改admin用户密码为123456
[[email protected]] /user> /                              #返回根目录

在当前用户下修改密码

[[email protected]]>password                             #修改本目录用户密码备份命令

阅读剩余部分...

dd安装Routeros

wget http://download2.mikrotik.com/routeros/6.43.8/chr-6.43.8.img.zip -O chr.img.zip && \

gunzip -c chr.img.zip > chr.img && \

mount -o loop,offset=33554944 chr.img /mnt && \

ADDRESS0=`ip addr show eth0 | grep global | cut -d' ' -f 6 | head -n 1` && \

GATEWAY0=`ip route list | grep default | cut -d' ' -f 3` && \

echo "/ip address add address=$ADDRESS0 interface=[/interface ethernet find where name=ether1]

/ip route add gateway=$GATEWAY0

" > /mnt/rw/autorun.scr && \

umount /mnt && \

echo u > /proc/sysrq-trigger && \

dd if=chr.img bs=1024 of=/dev/vda && \

reboot

CentOS7重新生成 /boot/grub2/grub.cfg

修改/etc/default/grub

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto vconsole.keymap=us rhgb quiet"

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto enforcing=0 vconsole.keymap=us rhgb quiet"

添加 enforcing=0 或者net.ifnames=0 biosdevname=0

GRUB_DISABLE_LINUX_UUID=true

存盘退出

执行 grub2-mkconfig --output /boot/grub2/grub.cfg



MacOS修改单个应用程序默认语言

背景

Mac系统语言设置的是英文,安装的Office语言默认也是英文。由于习惯了中文Office的使用,想把Office的语言设置成中文,    
方法之一就是直接修改系统的默认语言设置,但并不希望直接修改系统语言,仅想修改Office软件的默认语言

实现

1获取App的Bundle Identifier

Bundle Identifier是应用软件的标识,以Microsoft Word为例,Terminal中输入命令:

mdls -name kMDItemCFBundleIdentifier /Applications/Microsoft\ Word.app

2得到结果:

kMDItemCFBundleIdentifier = "com.microsoft.Word"

3修改应用程序默认语言

该操作需要用到第一步查到的应用程序Bundle Identifier,本例中是com.microsoft.Word,Terminal中输入命令:

defaults write com.microsoft.Word AppleLanguages '("zh_CN")'

阅读剩余部分...

RHEL7 禁用NetworkManager

systemctl stop NetworkManager

systemctl disable NetworkManager

一个LSI ​MegaCli的收集py脚本

前两天在电报群里面看到屌鸡在问这玩意顺道捡来的,我平时还是喜欢用MegaCli直接看。

这玩意其实就是把MegaCli的命令做了个集合输出,在使用前得先安装有MegaCli和python。

安装包地址:http://dl.kvm.la/lsi/MegaCli_All_OS

wget  https://raw.githubusercontent.com/eLvErDe/hwraid/master/wrapper-scripts/megaclisas-status
python megaclisas-status

supervisor+inotify监控管理nginx项目

安装supervisor

yum install epel-release -y
yum install supervisor inotify-tools -y
chkconfig --add supervisord
chkconfig --level 235 supervisord on

/etc/supervisord.conf增加的内容如下

[program:inotifywait]
command="/opt/inotifywait.sh"
numprocs=1


/opt/inotifywait.sh的配置内容如下:

cat  /opt/inotifywait.sh
#!/bin/bash
inotifywait -mrqe delete,create /opt/nginx | while read file
do nginx -s reload
echo `date`>>/tmp/rsync.log
done

supervisorctl常用命令

supervisorctl reload  //重载supervisor
supervisorctl update //更新supervisor
supervisorctl status //查看状态
supervisorctl update //更新新的配置到supervisord
supervisorctl start [all]|[x]     //启动所有/指定的程序进程
supervisorctl stop [all]|[x]      //关闭所有/指定的程序进程
supervisord          //启动supervisor
supervisord -c supervisor.conf   //通过配置文件启动supervisor
supervisorctl start test  //开启test服务

lsyncd安装部署记录

约定如下:    
运行lsyncd的节点为master    
被同步的节点为slave

1.在master上生成key并copy给slave节点做免密码通信。
这里我们是自用的机器则直接用的root。

ssh-keygen -t rsa  # 全部回车默认

ssh-copy-id [email protected]_server_IP

2.安装epel源码仓库和lsyncd

yum -y install epel-release
yum install lsyncd rsynce
systemctl enable lsyncd

3.配置文并启动

cat   /etc/lsyncd.conf
sync { default.rsyncssh,host="slave_server_IP-A",source="/opt/nginx/",targetdir="/opt/nginx/"}

sync { default.rsyncssh,host="slave_server_IP-B",source="/opt/nginx/",targetdir="/opt/nginx/"}

4.启动并查看状态

systemctl start lsyncd
systemctl status lsyncd

更多的使用细节懒得记录了。

更多的配置例子和文章可以参考下面
/usr/share/doc/lsyncd*/examples/
https://github.com/axkibe/lsyncd
http://seanlook.com/2015/05/06/lsyncd-synchronize-realtime/

阅读剩余部分...

Centos的openresty安装记录

以下是自用的openresty编译归纳

yum安装常用包

yum -y update
yum -y install epel-release -y
yum install lua-devel luajit git dos2unix mercurial -y
yum -y --skip-broken install gcc  vim-enhanced gcc-c++ libtool-libs libtool autoconf subversion zip unzip  wget crontabs iptables file bison patch mlocate flex diffutils automake imake make cmake cpp unix2dos mercurial kernel-devel zlib-devel

编译安装pcre

cd /tmp
wget -c http://sourceforge.net/projects/pcre/files/pcre/8.21/pcre-8.21.tar.gz/download -O -|tar xz
cd pcre-8.21 && ./configure
make && make install
if [ `uname -i` == x86_64 ]; then ln -s /usr/lib64/{libpcre.*,libjpeg.so,libpng.so,libXpm.so,libc-client.so,libkrb5.so,libexpat.so,libevent.so} /usr/lib/;fi

编译安装openresty

wget https://openresty.org/download/openresty-1.15.6.1rc0.tar.gz -O -|tar xz
cd openresty-1.15.6.1rc0
#wget -c https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.8.2.tar.gz -O -|tar xz && mv libressl-* libressl
git clone https://github.com/libressl-portable/portable  libressl
cd libressl && ./autogen.sh
cd ../
git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module
./configure --prefix=/etc --sbin-path=/usr/sbin/nginx --pid-path=/var/run/nginx.pid  --conf-path=/etc/nginx/nginx.conf --lock-path=/var/lock/subsys/nginx --with-stream=dynamic   --with-stream_ssl_module   --with-stream_realip_module --with-stream_ssl_preread_module  --with-mail=dynamic --with-mail_ssl_module --with-openssl=libressl --with-http_v2_module --with-pcre --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module  --with-http_secure_link_module --with-http_dav_module  --with-http_ssl_module --add-module=ngx_http_substitutions_filter_module
make -j2
make install
 wget http://dl.kvm.la/conf/nginx.init -O /etc/init.d/nginx
 chmod 755 /etc/init.d/nginx
 chmod 755 /etc/init.d/nginx
chkconfig --add nginx
chkconfig --level 235 nginx on

阅读剩余部分...

Solusvm手动迁移kvm虚拟机

Solusvm有在线迁移,但是需要离线,而且没有队列支持,操作起来相当的操心。

因数据比较大的原因,快照后直接用dd读取并压缩通过管道传递给新的宿主10.10.1.2并解压再写入lvm分区。

lvcreate -L 200G -s -n  kvm101_snap /dev/vg0/kvm101_img

dd if=/dev/vg0/kvm101_snap conv=sync,noerror bs=8M | gzip -c | ssh [email protected] "gzip -d |dd of=/dev/vg0/kvm101_img conv=sync,noerror bs=8M"

lvremove /dev/vg0/kvm101_snap -f

等待数据写入完成后,再使用rsync进行一次同步jiu差不多可以切换了。

在线服务数据出入量小或者几乎不变动可以用这种方法。

Centos升级第三方高版本Kernel

Centos6

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh https://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel -y install kernel-ml kernel-ml-devel

Centos7

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install -y https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel -y install kernel-ml kernel-ml-devel

release的版本号有时候会因为升级而变动,所以尽量核对一下原文出处的内容http://elrepo.org/tiki/tiki-index.php

在升级完后修改grub的配置文件/boot/grub/grub.conf将default=1改为default=0 这个地方主要是为了手动修改确认选择默认内核。
另外建议将timeout参数改为15以上,方便部分延长高操作卡的IPMI选择。

 

UPDATE:ORZ!发现之前好像写过一次, 地址是http://www.kvm.la/1024.html