目录
- ansible简介
-
- ansible
- [ansible 工作模块 分成两大块](#ansible 工作模块 分成两大块)
- ansible的ping
- 安装ansible
-
-
- [第一步、安装 epel-release YUM源](#第一步、安装 epel-release YUM源)
- 第二步、安装ansible
- [ansible 程序结构](#ansible 程序结构)
-
- [ansible 手册](#ansible 手册)
- 主机清单
ansible简介
-
anseble 是用python 开发的
-
集合了多种运维自动化工具(pupet、cfengine、chef、func、fabric)
-
实现了批量系统配置、批量程序部署、批量运行命令等功能
-
无客户端
-
playbook 剧本文件 主要是 是yaml 的语言 (意思是 我不仅仅是一个标记语言)
ansible
- 1、部署简单,只需要在主控端部署Ansible环境,被控制端无需做任何操作
- 2、默认使用SSH协议对设备进行管理
ansible 工作模块 分成两大块
- 主机 (这里指的是被控制的主机)
- adsible
- 模块
- 主机清单
- ssh
- playbook
ansible的ping
- ansible 的 ping 不是真正的ping 而是 使用ssh 能链接通 的ping
安装ansible
ansible 只需要在ansible controlller 节点(操作机)安装即可,与其他节点可以直接通过ssh协议进行链接操作
第一步、安装 epel-release YUM源
shell
yum -y install epel-release
第二步、安装ansible
shell
yum -y install ansible
ansible 程序结构
- 安装目录如下(yum安装):
- 配置文件目录:/etc/ansible/
- 执行文件目录:/usr/bin/
- Lib库依赖目录:/usr/lib/pythonX.X/site-packages/ansible/
- Help文档目录:/usr/share/doc/ansible-X.X.X/
- Man文档目录:/usr/share/man/man1/
ansible 手册
shell
# 查看手册
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 在对主机进行操作时,仅认主机清单中定义的主机列表,即从主机清单列表中读取到主机列表时,才可进行配置。
主机清单的作用
- 用于ansible controller 配置主机时读取主机列表
- 实现主机分组
主机清单定义方法
主机清单储存位置(在这个位置配置主机)
shell
/etc/adsible/hosts
vim /etc/ansible/hosts
方法一 :
直接在主机中写入 (IP地址) (主机名 主机名需要解析)
shell
echo 10.12.155.153 > /etc/ansible/hosts
方法二
在主机清单中进行分组管理
shell
[webgroup]
12.15.123.153
# 或者
[webgroup]
web1
免密登录
要使用免密登录的命令才能实现,对别的服务器的操作
shell
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
批量传递密钥
shell
#!/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 安装完结