三、05-ansible安装

发布时间:2024年01月20日

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源

yum -y install epel-release

第二步、安装ansible

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 手册

# 查看手册
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 配置主机时读取主机列表
  • 实现主机分组

主机清单定义方法

主机清单储存位置(在这个位置配置主机)

/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 安装完结

文章来源:https://blog.csdn.net/2301_79996063/article/details/135716387
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。