01-Ansible 自动化介绍

Ansible 部署

准备实验环境

实验环境 /etc/hosts

bash 复制代码
10.1.8.10 controller.laoma.cloud controller
10.1.8.11 node1.laoma.cloud node1
10.1.8.12 node2.laoma.cloud node2
10.1.8.13 node3.laoma.cloud node3
10.1.8.14 node4.laoma.cloud node4

配置控制节点 laoma 用户使用laoma用户免密登录所有节点,并免提sudo提权执行任何命令。

bash 复制代码
# 所有节点配置/etc/hosts
[root@all-node ~]# cat >> /etc/hosts <<EOF
################ ansible #################
10.1.8.10 controller.laoma.cloud controller
10.1.8.11 node1.laoma.cloud node1
10.1.8.12 node2.laoma.cloud node2
10.1.8.13 node3.laoma.cloud node3
10.1.8.14 node4.laoma.cloud node4
EOF
# 所有节点添加用户
[root@all-node ~]# useradd laoma
[root@all-node ~]# echo redhat | passwd --stdin laoma
# 所有节点,配置免密提权
[root@all-node ~]# echo 'laoma ALL=(ALL) NOPASSWD:ALL' >
/etc/sudoers.d/laoma
# 创建密钥对
[laoma@centos7 ~]$ [ -d ~/.ssh ] || mkdir -m 700 .ssh
[laoma@centos7 ~]$ ssh-keygen -t rsa -f .ssh/id_rsa -N ''
# 推送公钥到目标主机
[laoma@centos7 ~]$ sudo yum install -y sshpass
[laoma@centos7 ~]$ for host in controller node{1..4}
do
sshpass -p 123 ssh-copy-id laoma@$host
done
# 验证免密登录
[laoma@centos7 ~]$ for host in controller node{1..4}
do
ssh laoma@$host hostname
done

控制节点

控制节点用来安装 Ansible 软件的主机节点。控制节点可以是一个或多个,由 ansible 管理的主

机不用安装 Ansible。
提示 :控制节点是Linux或UNIX系统,不支持 Windows 作为控制节点。

安装 ansible

bash 复制代码
[laoma@controller ~]$ sudo yum install -y ansible
[laoma@controller ~]$ ansible --version
ansible 2.9.27
config file = /etc/ansible/ansible.cfg
configured module search path =
[u'/home/laoma/.ansible/plugins/modules',
u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/sitepackages/
ansible
executable location = /bin/ansible
python version = 2.7.5 (default, Jun 28 2022, 15:30:04) [GCC 4.8.5
20150623 (Red Hat 4.8.5-44)]

受管节点

Linux

受管节点满足的要求取决于控制节点连接它们的方式以及它们要运行的模块:

  • Python 版本:Linux和UNIX受管节点需要安装Python才能运行大部分的模块。

  • 一些模块不需要Python。例如,raw模块的参数直接通过配置的远程shell运行,在没有

    Python环境的设备上使用。不过,raw模块难以通过安全的幂等方式使用。

Windows

Ansible随附了多个专门为Microsoft Windows系统设计的模块。这些模块列在Ansible模块索引

的 Windows Modules 部分。

大部分专门为Microsoft Windows受管节点设计的模块需要在受管节点上:

  • 安装 Power Shell 3.0或更高版本。
  • 配置 Power Shell 远程连接。
  • 安装.NET Framework 4.0或更高版本。

本课程的示例中使用基于Linux的受管节点,不会深入阐述管理基于Microsoft Windows的受管节点时的具体差别和必要调整。可以在Ansible网站上查看更多信息。

网络设备

还可以使用Ansible自动化来配置受管网络设备,例如路由器和交换机。Ansible包含大量专门为

此目的而设计的模块。其中包括对Cisco IOS、IOSXR和NX-OS的支持;Juniper Junos;AristaEOS;

以及基于VyOS的网络设备等。

由于大多数网络设备无法运行Python,因此Ansible在控制节点上运行网络模块,而不是在受管

节点上运行。特殊连接方法也用于与网络设备通信,通常使用SSH上的CLI、SSH上的XML或

HTTP(S)上的API。

相关推荐
ESDWAN25 分钟前
SD-WAN 企业选型与落地指南:从链路测试到网络架构设计
运维·网络·架构
啊哈一半醒30 分钟前
Docker 底层知识:从 Namespace 到 UnionFS
运维·docker·容器
_smart_boy__36 分钟前
I.MX6U开发板Uboot无法ping Ubuntu问题解决方案(二)
linux·运维·ubuntu
DianSan_ERP1 小时前
多平台订单自动下载与回传的技术实现:从消息推送到状态闭环引言
java·linux·服务器·前端·网络·架构·自动化
~光~~1 小时前
【嵌入式Linux学习】GFP_NOIO / GFP_NOFS(Linux 内核 gfp 分配标志)
linux·运维·学习
涵美女程序猿1 小时前
ChatCut online 剪负载均衡健康检查演练录屏:后端池、探针路径与摘除阈值怎样对应
运维·程序人生·电脑·负载均衡
分布式存储与RustFS1 小时前
升级 RustFS 二进制不停机:一条一条换,留一条退路
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
吴声子夜歌2 小时前
Nginx应用与运维——Nginx核心配置指令(一)
运维·nginx
android阿杜2 小时前
Ubuntu 26.04 LTS 系统每次重启后屏幕亮度都会增加一点
linux·运维·ubuntu
路溪非溪3 小时前
Linux下Shell脚本基础知识(二)
linux·运维·服务器