CentOS 6安装部署轻量级运维工具Omnitty的过程,本文基于CentOS 6 64bit.
1, 安装
Omnitty的官网介绍了安装方法,因此这里从Omnitty的官网复制过来的。
$ yum install gcc gcc-c++ make ncurses ncurses-devel
$ sudo apt install gcc g++ make ncurses-bin ncurses-dev
#In order to run Omnitty, you will need to download and install libROTE first.
#Then you can install Omnitty.
$ tar -zxf /path/to/rote-X.Y.Z.tar.gz
$ cd rote-X.Y.Z
$ ./configure
$ make
$ su -c "make install"
$ cd ..
$ tar -zxf /path/to/omnitty-X.Y.Z.tar.gz
$ cd omnitty-X.Y.Z
$ ./configure
$ make # 可能会遇到错误, 参考下方的处理方法.
$ su -c "make install"
然后,你就可以运行omnitty了.
可能会遇到的错误1:
make时提示/usr/lib64/libncurses.so.5: error adding symbols: DSO missing from command line
解决方法(参考文档):
$ vim Makefile # 在下方添加-lncurses -ltinfo
...
omnitty: $(objects)
$(CC) $(CFLAGS) -o omnitty $(objects) $(LDFLAGS) $(LIBS) -lncurses -ltinfo
...
可能遇到的错误2:
安装完首次运行时提示omnitty: error while loading shared libraries: librote.so.0: cannot open shared object file: No such file or directory
解决方法:
$ whereis librote.so.0
librote.so: /usr/local/lib/librote.so /usr/local/lib/librote.so.0
$ echo '/usr/local/lib' > /etc/ld.so.conf.d/omnitty.conf
$ ldconfig
2, 使用方法
把IP列表写入到一个文件中
$ cat ip_list_file
192.168.121.128
192.168.121.129
也可以在这里写成[email protected]的格式,如果不写,等会登陆时会自动使用当前登陆的用户名来登陆。
运行命令
$ omnitty
默认进入了singlecast mode(右下角会显示模式),表示单台服务器操作,输入的命令只对此服务器有效,也可按F7进入MULTICAST MODE(批量操作)模式,对所有加了tag的服务器进行操作。
打开IP列表:F5,输入@ip_list_file,回车
此时会要求输入各个服务器的登陆密码,可按F2/F3上下切换服务器
给服务器加tag
tag就相当于选中的意思,给一台服务器加了tag,表示选中了这台服务器,等会批量操作的时候,命令会在所有加了tag的服务器上执行,加上tag以后服务器左侧会有一个星号
给几台服务器加tag:按F2/F3上下切换服务器,然后按F4可将单台服务器加tag;
给全部服务器加tag:按F1呼出菜单,按t
切换单台操作/批量操作模式(singlecast/MULTICAST mode):F7
呼出菜单:F1
退出程序:先F1,按q,按y,回车
注意事项
1, 不要使用↑来切换上一条命令,因为在每一台机器上,上一条命令很可能不一样,进而导致执行结果不一样;
2, 小窍门:在打开IP列表(即按F5,输入@ip_list_file,回车)后可以立刻tag所有服务器,然后进入MULTICAST mode,实现批量登陆。当然,前提是所有服务器的密码都是一样的。但是这样有个风险,请注意,有一部分服务器,在首次登陆的时候,会弹出询问Yes/No,而另一部分已登陆过的服务器则会直接要求输入密码。此时可以先输入一个yes并回车,然后再输入密码即可。
3, 为保持操作同步,使用tab补全命令存在风险,需要进行命令一致性检查;
4, 修改文件建议使用sed ,使用vi 或vim 会造成不必要的麻烦。