Ansible自动化运维

一 Ansible介绍
1开发流程:
aDev->QA->UAT(预生产环境)->prod(生产环境)
2定义

image.png


3流程

image.png



4实践部署

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png


5Ansible的模式与命令

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png


6shell模块

image.png

image.png

image.png

image.png


7script模块

image.png

image.png



二、Ansible-play语法规范
参考资料:自动化运维工具-----Ansible playbook详解-CSDN博客
1Play: 一个 Play 包含一组任务和其他指令,描述了要在哪些主机上执行哪些操作。
2Tasks:Playbook 的核心,描述了要执行的操作。
3Handlers: 一种特殊的任务,仅在被通知时执行,常用于服务的重启等操作。Tasks中的任务都是有状态的,changed或者ok。 在Ansible中,只在task的执行状态为 changed 的时候,才会执行该task调用的handler。notify 下列出的即是 handlers.
●Handlers 也是一些 task 的列表,通过名字(name)来引用。
●Handlers 是由通知者进行 notify, 如果没有被 notify,handlers 不会执行。
●andlers是按照在handlers中定义个顺序执行的,而不是安装notify的顺序执行的。比如,handlers 定义的顺序是1>2>3,notify 的顺序是3>2>1,实际执行顺序:1>2>3.
总结,Handlers 最佳的应用场景是用来重启服务,或者触发系统重启操作.除此以外很少用到。
4Variables: 用于在 Playbook 中存储和传递数据。
5Roles: 将任务、变量、文件、模板等组织在一起的方式,便于重用。
Yaml语法
●大小写敏感
●使用缩进表示层级关系
●缩进时不允许使用Tab键,只允许使用空格。
●缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
●# 表示注释,从这个字符一直到行尾,都会被解析器忽略
●YAML 还有一个小的怪癖. 所有的 YAML 文件(无论和 Ansible 有没有关系)开始行都应该是 ---. 这是 YAML 格式的一部分, 表明一个文件的开始.
●列表中的所有成员都开始于相同的缩进级别, 并且使用一个 "- " 作为开头(一个横杠和一个空格)
●一个字典是由一个简单的 键: 值 的形式组成(这个冒号后面必须是一个空格)
●Ansible 使用 “{{ var }}” 来引用变量,foo: "{{ variable }}"。
playbook 中常用的集中变量
1在 playbook 中,用户自定义的变量
2无需用户定义,ansible 在执行 playbook 之前,去远程主机上搜集的关于远程主机的系统信息变量
3task 运行的结果「注册」为一个变量来使用,这个变量叫做「注册变量」
4允许用户在执行的时候传入变量的值,这时候用到的是「额外变量」
关键字
1.1become
become 是 Ansible Playbook 中的一个关键字,用于指示 Ansible 在执行任务时切换用户身份以获取特权权限(通常是 root 用户或其他具有特权权限的用户)。在执行某些任务时,可能需要特权权限来完成一些需要管理员权限的操作,比如安装软件包、修改系统配置等。
使用 become 时,可以在整个 Playbook 或单个任务中启用或禁用特权身份。通常,它与 become_user 或 become_method 结合使用,以指定要切换到的用户或特权获取的方法。

Plain Text复制代码

1

become: yes # 启用特权身份

指定切换的用户

Plain Text复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

---

- name: 安装 Apache

hosts: webservers

become: yes

become_user: apache

tasks:

- name: 创建一个文件夹

file:

path: /var/www/html/test

state: directory

在这个示例中,整个 Playbook 都会以 apache 用户的身份执行,因为 become_user 设置为 apache。

1.2var
1.2.1在 playbook 中,通过关键字 vars 自定义变量,用 {{}} 引用变量。
1.2.2将变量放在单独的文件中
通过 vars_files 关键字指定了变量文件
1.2.3ansible 通过 module setup 收集主机的系统信息,这些收集到的系统信息叫做 facts,这些facts可以直接以变量的形式使用。
playbook 中的逻辑控制语句
●when:条件判断,类似编程语言中的 if
●loop:循环,类似编程语言中的 while
●block:将几个 task 组成一块代码,便于针对一组操作进行异常处理等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值