ssh 免密码 批量管理
1.建立用户
useradd user1
echo “123456”| passwd --stdin user1
2.建立秘钥
ssh-keygen -t dsa
而后一直回车python
非交互式(批量)建立秘钥mysql
3.上传公钥(其余服务器也须要有一样用户)
ssh-cppy-id -i ~/.ssh/id_dsa.pub user1@IPlinux
若是端口改变的话程序员
4.能够直接写脚本执行(非交互式)
例:直接在后面加命令sql
5.ssh 经常使用选项用法
-l 指定登入用户
-p 设置端口号(scp时须要大写P)
-f 后台运行,并推荐加上 -n 参数
-n 将标准输入重定向到 /dev/null,防止读取标准输入
-t 在终端执行docker
5.sudu用法:在sudo组中或在/etc/sudoers 下修改 给用户受权shell
远程sudo须要 ssh 加 -tvim
expect实现非交互式批量管理
例:批量分发公钥
vim scrip.expcentos
若是还须要执行后续命令
则加上服务器
而后循环调用此脚本进行批量
ansible
CI(持续集成):为了每一个项目组程序员开发的功能或模块可以兼容须要不断的把已经开发好的功能集成到系统中进行测试
CD(持续交付):测试没问题不断快速发到预发布系统中能让客户获取新版本
CD(持续部署):把交付的结果放到线上,这个过程可以脚本自动执行和快速敏捷实现
DevOps:以上三个过程可以所有自动进行
AIOps:人工智能运维(智能化运维)
2.以上能够分为三步:系统安装、系统配置、系统部署。ansible能够完成配置和部署
3.ansible命令行:
-a:传输模块参数
-m:调用得模块
-C:模拟测试
-f:并发量
-i:指定主机清单文件(默认/etc/ansible/hosts)
–list-hosts:列出可匹配的主机列表
-t:指定日志
-c:指定连接方式
-u:指定连接的用户
-s:sudo
4.免秘钥登陆
ssh-keygen -t rsa -P " "
ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.0.67
5.定义目标主机在/etc/ansible/hosts中
[] 能够设置每一个主机组
例
fales 表示没改变目标主机配置
6.查看可用模块
-a 获取文档
-l 列出可用模块
-s 查看模块中可用的参数
一、ssh-keygen -t rsa 生成公钥和私钥 -t 指定类型,此时会在/root/.ssh/下生成公钥和私钥的文件
二、ssh-copy-id -i /root/,ssh/id_rsa.pub root@192.168.111.138 将公钥文件拷贝到另外一台服务器,-i 指定组文件
三、此时会在另一台服务器上生成auth文件。完成!
最小化安装没有ssh-copy-id解决办法,yum install -y openssl-clients
pssh实例
pssh是一个能够在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的。使用时必须在各个服务器上配置好秘钥认证访问
安装方法
一、wget http://www.theether.org/pssh/pssh-1.4.3.tar.gz
二、解压,进入目录。python setup.py install
若是提示没有setiptools模块,解决办法:
pssh -i -h list.txt ‘df -h’
ansible详解、
ansible和saltstack都是管理工具,ansible只须要在一台普通服务器上运行便可,不须要在被管控的服务器上安装客户端,由于它是基于SSH的,因此ansible不须要配置额外的支持,运行ansible的服务器称为‘管理节点’,经过ansible进行管理的服务器成为“受控节点”
优势:
一、轻量级,更新时,只须要在一台服务器上进行一次更新便可
二、采用SSH协议
三、不须要去客户端执行agent
四、批量执行能够写成脚本,不用分发到远程就就能够执行
5:、使用python编写,维护更简单
六、支持sudo普通用户命令
安装方法
ansible可以安装到linux、bsd、mac等平台,python的最低版本要求为2.6
centos使用yum安装,安装以前先安装perl源码 rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install ansible -y
使用方法
cd /'etcansible; hosts文件为配置。能够添加分组
-u username 指定ssh连接的用户名,即执行后面命令的用户
-i inventory_fie 指定使用的配置文件,默认为hosts
-m module 指定使用的模块,默认为command
-f 指定并发数
-a 指定模块的参数
--sudo [-k] 当须要root权限执行的话,-k参数用来输入root密码
常见的模块有comman、shell、script、yum、copy、file、async、docker、cron、mysql_user、ping、sysctl、user等
一、ansible 192.168.111.* -m command -a 'df -h'
二、 ansible all -m cpoy -a 'src=/etc/passwd dest=/tmp mode=755 owner=root'
三、ansible all -m yum -a "name=screen state=installed"
四、ansible all -m file -a "path=/tmp/`date +5F` state=directory mode=755"
五、ansible all -m file -a "path=/tmp/123.txt state=touch mode=644"
六、ansibkle all -m user -a "name=user1 home=/home/user1"
七、ansible all -m cron -a "minute=0 hour=0 day=* month=* weekday=* name='工做内容' job='/usr/sbin/ntpdate pool.ntp.org'"