ansible之安装以及初始化配置

ansible初探

前言

前一段时间公司因为业务需要购买了大量服务器,服务器刚开始需要进行一些初始化操作,包括<防火墙配置,yum源配置,hosts文件分发,系统内核参数调优….> 如果一台一台配置浪费了大量时间而且效率极低,所以我选择用ansible来处理这个问题,ansible是一款用python写的批量管理工具,基于ssh连接并且无需安装客户端,内部支持上百个功能模块去调用。能够完成我们工作中的大部分功能。另外也支持自己开发的模块。好了不多说,我们一起来学习下ansible。

常见使用场景

1.系统初始化操作 (关闭selinux,ssh优化,系统内核参数调优,yum源更新,常用软件安装。磁盘分区。)

2.客户端的批量安装(常见的场景就是zabbix客户端需要批量安装,大的公司几千台机器太正常,此时就需要用ansible批量安装客户端)

3.一些集群的安装 (批量安装lnmp)

总之当你觉得任务重复性操作强,完全就可以用ansible

准备条件以及操作

1.管理机器安装ansible

2.管理机ssh公钥分发

3.编辑ansible hosts文件,细化被管理机器类型如:web、db、nfs 、sync 、ftp

说明:model 是管理机器, jenkins、node-1、node-2、都是被管理机器

安装ansible

[root@model ~]# yum install ansible -y

安装sshpass无交互工具:

[root@model ~]# yum install sshpass -y

生成密钥:

[root@model ~]# ssh-keygen -t dsa -f ~/.ssh/id_dsa -P “”

编写无交互分发密钥脚本:

#!/bin/bash
#author:王庭威
#descrip:无交互分发密钥
#date:2019.01.29
port=9777
password=123456
for ip in 192.168.137.{100..103}
do
sshpass -p $password ssh-copy-id -i ~/.ssh/id_dsa.pub -p $port -o StrictHostKeyChecking=no root@$ip
echo $ip “密钥分发成功”
done

配置ansible hosts文件

测试主机连通性

/etc/hosts 文件分发

ansible all -m copy -a “src=/etc/hosts dest=/etc/hosts backup=yes”

备注:backup=yes 代表如果目的文件已存在,先备份再覆盖

先删除一台机器的/etc/hosts,重新分发

 

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Loading...