anseble 是用python 开发的
集合了多种运维自动化工具(pupet、cfengine、chef、func、fabric)
实现了批量系统配置、批量程序部署、批量运行命令等功能
无客户端
playbook 剧本文件 主要是 是yaml 的语言 (意思是 我不仅仅是一个标记语言)
ansible 只需要在ansible controlller 节点(操作机)安装即可,与其他节点可以直接通过ssh协议进行链接操作
yum -y install epel-release
yum -y install ansible
# 查看手册
ansible --help
# 获取全部模块信息
ansible-doc -l
# 查看yum模块
ansible-doc yum
# 常用语法
ansible <host-pattern> [-f forks] [-m module_name] [-a args]
ansible {主机清单中的主机组} -f {开启线程数} -m {模块} -a {模块需要的参数}
ansible controller 在对主机进行操作时,仅认主机清单中定义的主机列表,即从主机清单列表中读取到主机列表时,才可进行配置。
主机清单储存位置(在这个位置配置主机)
/etc/adsible/hosts
vim /etc/ansible/hosts
直接在主机中写入 (IP地址) (主机名 主机名需要解析)
echo 10.12.155.153 > /etc/ansible/hosts
在主机清单中进行分组管理
[webgroup]
12.15.123.153
# 或者
[webgroup]
web1
要使用免密登录的命令才能实现,对别的服务器的操作
1.产生公钥和私钥: 生成一对密钥:公钥+私钥
ssh-keygen #一直回车
2.查看钥匙的目录:
[root@linux-server ~]$ cd /root/.ssh/
id_rsa ---私钥
id_rsa.pub ---公钥
known_hosts ----确认过公钥指纹的可信服务器列表的文件
authorized_keys ---授权文件,是传输过公钥到对方服务后会自动重命名生成的
3.拷贝公钥给对方机器:
[root@linux-server ~]$ ssh-copy-id {对方机器ip地址}
ip地址:指的是对方服务器
4.远程连接的时候就不用输入密码了
————————————————
版权声明:本文为CSDN博主「白嫖一茶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/2301_79996063/article/details/134841369
#!/bin/bash
<<bak
pass.txt 文件示例
192.168.1.2 root password 22
192.168.1.3 root password 22
bak
[ ! -f $HOME/.ssh/id_rsa ] && ssh-keygen -t rsa -b 2048 -N "" -f $HOME/.ssh/id_rsa
[ -f /etc/init.d/functions ] && . /etc/init.d/functions
INFO=pass.txt
# yum install -y sshpass
for IP in $(awk '/^[^#]/{print $1}' $INFO); do
USER=$(awk -v I=$IP 'I==$1{print $2}' $INFO)
PASS=$(awk -v I=$IP 'I==$1{print $3}' $INFO)
PORT=$(awk -v I=$IP 'I==$1{print $4}' $INFO)
sshpass -p $PASS ssh-copy-id -o StrictHostKeyChecking=no ${USER}@${IP} && \
action "秘钥传输成功 $IP" /bin/true || \
action "秘钥传输失败 $IP" /bin/false
done
本章 ansible 安装完结