ansible学习

本文详细介绍了如何利用Ansible进行运维配置自动化,包括操作系统部署、主机管理、代码CI/CD、系统监控(Zabbix和ELK)等内容,以及实际案例如免密登录、主机清单配置和常用操作演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运维配置自动化ansible

1.自动化列举

1.1 操作系统预备自动化

例如PXE

1.2.配置自动化

ansible

1.3.监控自动化

  • 系统与应用监控 zabbix
  • 日志监控 ELK

1.4.代码持续集成与代码持续发布自动化

git、Jenkins、docker等

2.配置自动化应用场景

2.1大量服务器快速配置应用部署,通过配置自动化实现。

  • 提供配置效率
  • 提高配置的准确性
  • 降低人工参与度

2.2配置自动化的相关产品

序号工具描述
1ansible开箱即用,使用ssh协议
2saltstack需要agent端配合,配置部署速度快
3puppet咯安排配置自动化,需要agent端配合

3.ansible工作原理

3.1原理

无主无从架构,开箱即用,用完即走。

在这里插入图片描述

modules:工具模块

host inventory:主机清单

play books:剧本,批量操作多台机器

3.2总结:

  • 主机
  • ansible
    • 模块
    • 主机清单
    • ssh
    • playbooks

4.ansible安装和主机配置

4.1安装ansible

寻找一台主机作为ansible controller,其它节点通过试试协议进行连接操作。

sudo apt install ansible -y

4.2主机清单

4.2.1主机清单的作用

ansible controller在对主机进行操作时,仅认主机清单中定义的主机列表,即从主机清单中读取到主机列表时,才可以进进行配置。

  • 用于ansible controller配置主机时读取主机列表
  • 实现主机分组
4.2.2 主机清单定义方法

主机清单存储位置:

/etc/ansible/hosts

在最后追加主机

[testservers]
192.168.108.135
192.168.108.136
4.2.3 总结:

作用:

  1. 读取主机ip或主机名称
  2. 实现主机分组操作

配置:

  1. 直接在主机清单文件中添加ip或主机名
  2. 在主机清单中添加一个分组,然后再添加ip或主机名但分组中

5.ansible应用案例

5.1开通远程免密登录

(PS:这里使用root用户,也可以使用普通用户,不通用户名称,需要在ssh-copy-id后面配置)

在ansible controller机器中(控制机),生成root的密钥对,并设置私钥密码为空

# 切换到root
sudo su
# 生成ansible controller机器的密钥对,并设置私钥密码为空
ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ''
# 同步密钥到对应主机
#  此时对应主机还没有密钥对(即/root/.ssh目录都没有)
#  一次认证,后面都是免密登录
ssh-copy-id sw1@192.168.108.135
ssh-copy-id sw2@192.168.108.136

免密登录设置完毕。

5.1.1免密登录注意事项

设置什么用户免密登录,只能该用户进行免密登录。

例如,ansible controller机器在用户sw用户下,设置sw1和sw2机器的免密登录,那么ansible controller机器只能sw用户免密登录到sw1和sw2,不能用root免密登录到sw1和sw2。

5.2设置主机清单

5.2.1编辑/etc/ansible/hosts
vim /etc/ansible/hosts
[testservers]
sw1@192.168.108.135
sw2@192.168.108.136

5.3 执行时钟同步

# ansible ip -m modeule<m> -a args
# 例如
ansible sw1@192.168.108.135 -m cron -a 'name="test cron" job="ntpdate time1.aliyun.com" minute=0 hour=*/1'

5.4 copy本地(ansible controller)文件到远程主机

ansible testservers -m copy -a 'src=/home/sw/copy_dir_test dest=/root/'

5.5 ping远程主机

ansible testservers -m ping
### 关于 Ansible学习资料 #### 官方文档 官方文档是最权威的学习资源,涵盖了从入门到高级的各种主题。可以访问 [Ansible 官网](https://docs.ansible.com/) 获取最新版本的手册。 #### 配置文件解析 Ansible 的配置文件 `ansible.cfg` 是核心组件之一,用于定义其行为和控制方式[^1]。理解此文件有助于更好地掌握如何自定义 Ansible 行为。 #### 主机清单管理 默认情况下, Ansible 的主机清单文件位于 `/etc/ansible/hosts`. 对于通过 pip 安装的情况,该路径下的 hosts 文件可能不存在,这时只需手动创建即可满足需求[^2]. #### 模块探索工具 为了方便用户了解各个模块的功能与参数设置方法,提供了专门的帮助命令——`ansible-doc` 。例如执行 `ansible-doc -l` 可以罗列所有可用模块;而当想要深入了解某个特定模块时,则可以通过 `ansible-doc -s MOD_NAME` 来查阅具体信息[^3]。 #### 实践指南 实际操作中经常借助命令行调用内置模块完成任务自动化工作。值得注意的是,在这种场景下部分插件特性(如循环事实等功能)将不可用,因此建议深入研究 ad-hoc 命令的应用范围及其局限性[^4]。 ```bash # 查看所有模块列表 ansible-doc -l # 查询某模块详情 ansible-doc -s user ``` #### 社区支持与其他资源 除了上述提到的内容外,还有许多其他途径可以帮助加深对 Ansible 的认识: - GitHub 上有大量开源项目可供参考; - Stack Overflow 和 Reddit 等论坛上也有很多开发者分享经验技巧; - YouTube 平台上有不少视频教程适合不同层次的学习者观看学习
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值