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。

相关推荐
雪可问春风1 天前
docker环境部署
运维·docker·容器
lwx9148521 天前
Linux-Shell算术运算
linux·运维·服务器
翻斗包菜1 天前
PostgreSQL 日常维护完全指南:从基础操作到高级运维
运维·数据库·postgresql
somi71 天前
ARM-驱动-02-Linux 内核开发环境搭建与编译
linux·运维·arm开发
海的透彻1 天前
nginx启动进程对文件的权限掌控
运维·chrome·nginx
路溪非溪1 天前
Linux驱动开发中的常用接口总结(一)
linux·运维·驱动开发
航Hang*1 天前
第3章:Linux系统安全管理——第2节:部署代理服务
linux·运维·服务器·开发语言·笔记·系统安全
北方的流星1 天前
华三网络设备的路由重定向配置
运维·网络·华三
河南博为智能科技有限公司1 天前
蓄电池在线监测系统-守护数据中心安全防线
运维·边缘计算
SkyWalking中文站1 天前
使用 TraceQL 查询 SkyWalking 和 Zipkin 链路追踪数据并在 Grafana 中可视化
运维·grafana·监控