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。

相关推荐
暖核11 小时前
Linux实战入门:从零编写第一个Bash Shell脚本
linux·运维·bash
云原生指北11 小时前
Docker Sandboxes 的隔离例外:共享 Skills 与宿主机 MCP
运维·docker·ai·容器·agent
2301_7867566012 小时前
不做分子仿真、不布局自动化实验室,垂直科研智能平台同样跑通 AI for Science 可持续变现
运维·人工智能·自动化
志栋智能12 小时前
超自动化安全如何提升合规与审计效率?
运维·安全·自动化
March.s12 小时前
深入理解 Linux 系统启动原理
linux·运维·服务器
zbyyd12 小时前
Linux 基础与 Shell 命令
linux·运维·arm开发
起名真的太难了12 小时前
Linux系统运维与远程管理核心命令速查指南
linux·运维·服务器
酷可达拉斯13 小时前
自动化运维-Ansible Role详解
linux·运维·服务器·自动化·ansible
智能运维指南13 小时前
智能体自治运维选型指南:2026年企业如何从“AI辅助”走向“AI自治”
大数据·运维·人工智能
suijishengchengde13 小时前
k8s deployment或statefulset分组关停
运维·kubernetes