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。

相关推荐
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智3 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉3 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
dayuOK63073 天前
写作卡壳怎么办?我的“5分钟启动法”
人工智能·职场和发展·自动化·新媒体运营·媒体
AC赳赳老秦3 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
java_cj3 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes