ansible自动化运维工具(1)

ansible all -m copy -a ‘content=“hello westos”\n dest=/etc/motd’ -u student --become@[TOC](目录)

1. ansible的介绍

ansible是一款开源自动化平台,是一个配置管理工具,自动化运维工具 。它具有基于Python开发,集合了众多运维工具 (puppet、chef、func、fabric) 的优点,实现了 批量系统配置、批量程序部署、批量运行命令等功能。

2. ansible的优点

1.跨平台支持
2.人类可读自动化: ansible提供linux,Windows,unix和网络设备的无代理支持,适用于物理、虚拟、云和容器环境
3.完美描述应用:playbook
4.轻松管理版本控制:playbook是纯文本,可视作源代码
5.支持动态清单
6.编排可与其他系统轻松集成:puppet、jenkins
7.基础架构即代码
8.减少人为错误

3. ansible的安装

1.在workstation上安装ansible,充当控制节点
yum install -y ansible
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.查看ansible版本信息
ansible --version
在这里插入图片描述
3.使用setup模块验证python
在这里插入图片描述

4. 构建 ansible 清单

清单:
定义了 ansible 将要管理的一批主机。清单就是我们的主机清单,里面保存的是一些 ansible 需要连接管理的主机列表

4.1 静态清单

在这里插入图片描述
注意: 一台主机可以存在于多个主机组

4.2 定义嵌套组

ansible 主机清单可以包含多个主机组构成的组
在这里插入图片描述

4.3 通过范围简化主机规格

可以指定主机名称或 ip 范围或者数字和字母范围

  • 语法:
    在这里插入图片描述
4.4 验证清单

在这里插入图片描述

4.5 默认清单位置:

/etc/ansible/hosts
在这里插入图片描述
在这里插入图片描述

4.6 动态清单

可以从开源社区的脚本中获取

5. 管理 ansible 配置文件

5.1 ansible程序结构
配置文件目录/etc/ansible/
执行文件目录/usr/bin/
Lib库依赖目录/usr/lib/pythonX.X/site-packages/ansible/
Help文档目录/usr/share/doc/ansible-X.X.X/
Man文档目录/usr/share/man/man1/
5.2 配置文件:
/etc/ansible/ansible.cfg基本配置文件,如果找不到其他配置文件时可使用
~/.ansible.cfg如果存在此配置并且当前工作目录中也没有 ansible.cfg,此 文件替代/etc/ansible/ansible.cfg
./ansible.cfg执行 ansible 命令的目录中如果有 ansible.cfg,就用它,不 使用上面两个(推荐使用,上面两个不常用)
5.3 显示使用的配置文件

在这里插入图片描述

5.4 管理配置文件中的设置:
[defaults]部分设置 ansible 操作的默认值
[privilege_escalation]配置 ansible 如何在受管主机上执行特权升级

vim /root/deploy-inventory/ansible.cfg在这里插入图片描述

5.4 使用 sudo 进行权限下放

使用超级用户编辑文件:
在这里插入图片描述

6.运行临时命令

使用临时命令可以快速测试和更改,无需编写 playbook

6.1 格式:

ansible host-pattern -m module [-a ‘module arguments’] [-i inventory]

6. 2 检查能否在受管主机上运行python 模块

在这里插入图片描述
在这里插入图片描述

6.3 使用临时命令通过模块执行任务

在这里插入图片描述
在这里插入图片描述

6.4.ansible 模块
  • 1.文件模块:
-copy将本地文件复制到受管主机
-file设置文件的权限和其他属性
-lineinfile确保特定行是否在文件中
-synchronize使用 rsync 同步内容
  • 2.系统模块
-firewalld使用 firewalld 管理任意端口和服务
-reboot重启
-service管理服务
-user添加、删除和管理用户账户
  • 3.Net Tools 模块
-get_url通过 http、https、或者 ftp 下载文件
-nmcli管理网络
-uri与 web 服务交互

7. 实验

1.使用 user 模块确保 student 用户存在于servera.lab.example.com 且 uid 为 1000
在这里插入图片描述
在这里插入图片描述

  • 注意:
    command 模块允许执行远程命令,但这些命令不是 shell 处理,所以无法访问 shell 环 境变量,所以不能执行重定向、传送等操作’

2.使用 shell 和 command 的区别
在这里插入图片描述

3. 使用 command 模块执行临时命令
在这里插入图片描述
4.使用 copy 模块

  • 1.首先使用 student 用户,因为 student 用户没有写权限,会失败

在这里插入图片描述

  • 2.使用特权升级
    注意:
    此处使用特权升级需要先编辑 /etc/sudoers.d/student 文件

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 参数解释:
-m指定模块
-a指定块命令,content=" "指定添加信息\n换行,dest=/etc/motd添加信息路径
-u指定受管主机登录时的用户身份
-k表示输入密码(已经做过免密登录的可以不适用此参数)
–become超级用户身份登录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值