linux中ansible整理笔记

一、工作模式

1. adhoc临时命令

语法: ansible 主机或者组列表 -m 模块 -a “参数”

2. playbook

语法:

ansible-playbook xxx.yml

二、模块

1. ping

2.command:默认模块(不支持重定向,管道)

3.shell:类似command,但是支持shell特性,如管道,重定向

4.script:用于在远程主机上执行脚本

5.file:可以创建文件,目录,链接等,还可以修改权限,属性等

6.copy:用于将文件从控制端拷贝到被控制端

7.fetch:与copy模块相反,copy是上传,fetch是下载

8.lineinfile:用于确保目标文件中有一行内容

9.replace:inlinefile会替换一行,replace可以替换关键词

10.user:实现linux用户管理

11.group:创建、删除组

12.yum_repository:用于配置yum

13.yum:用于rpm软件包管理,如安装、升级、卸载

14.service:用于控制服务

15.lvg:创建,删除卷组,修改卷大小

16.lvol:创建,删除逻辑卷,修改逻辑卷大小

17.filesystem:格式化,也就是创建文件系统

18.mount:挂载文件系统

19.parted:硬盘分区管理

20.setup:facts变量

21.debug:打印指定内容

22.firewalld:防火墙配置

23.template:可以上传具有特定格式的文件(如文件中包含变更)

三、变量

1.预定义变量(facts)

1.1 通过setup模块获取

1.2 常用变量

ansible_hostname:主机名
ansible_all_ipv4_addresses:所有的ipv4地址
ansible_bios_version:BIOS版本信息
ansible_memtotal_mb:总内存大小
ansible_eth0.ipv4.address:eth0的ip地址

2.自定义变量

2.1 用户自己定义的变量

2.2定义位置

2.2.1 主机清单文件中定义

2.2.2 playbook中定义

2.2.3 专门的变量文件中定义

2.2.4 在角色的defaults目录和vars目录中定义

四、错误处理

1.使用ignore_errors忽略错误

2.在task级别忽略,只针对某一任务

3.在play级别定义,针对play中所有任务

五、触发执行的任务

1.通过handlers定义触发执行的任务

2.handlers中定义的任务,不是一定会执行的

3.在tasks中定义的任务,通过notify关键通知handlers中哪个任务要执行

4.只有tasks中的任务状态是changed才会进行通知

六、条件执行

1.使用when关键字进行条件判断

2.常用操作符:

==,!=,>, <, >= ,<=

3.多条件:and, or

4.取反:not关键字

七、注册变量

1.使用register关键字

2.用于捕获和保存任务执行结果

八、任务块

1.通过block关键字,将多个任务组合到一起

2.将整个block任务组,一起控制是否要执行

3.与rescue,always连用

3.1 block中的任务都成功,rescue的任务不执行

3.2 block中的任务出现失败(failed),rescue的任务执行

3.1 block中的任务不论如何,always的任务总是执行

九、循环

1.使用loop关键字

2.相当于shell中的for循环

3.循环用到的变量名是固定的,叫item

十、角色role

1.主要目的:代码重用

2.创建命令: ansible-galaxy init

3.角色目录说明:

3.1 README.md

3.2 tasks

3.3 handlers

3.4 files

3.5 templates

3.6 vars

3.7 defaults

3.8 meta:包含一个main.yml文件,用于描述角色元信息,例如作者、依赖等

3.9 tests:存放一些测试代码和测试用例文件

139bcfadd8ca4bcfa30980c9503cbc86.png

随着ansible模块越来越多,每次把ansible程序和模块打包在一起,软件的更新就特别麻烦,

软件更新了,模块可能跟不上,或者模块更新了,而软件更新又跟不上模块的更新,所以

目前发展的方向是“软件和模块分离”

ansible软件包为ansible-core(该软件包中包含ansible核心命令和核心模块),其他更多模块单独发布。

而模块和插件等都单独发布,也比较乱,所以设计了新的collection概念,一个collection目录中可以把某一类的模块,角色,插件都封装在一起,下载collection就可以一次性下载所有相关的模块,角色,插件。

红帽会不定期发布一个容器,将ansible核心软件和更多collection封装的模块都一起放到一个容器中,简直是新手的福音,用户不用关心软件的安装,也不用关心模块从哪儿下载。

用户只要启动一个容器就可以搞定一切,然后通过ansible-navigator管理这个容器。

可以参考以下网站:

github地址:

GitHub - ansible/ansible-navigator: A text-based user interface (TUI) for Ansible.

配置文档网址:Configuration - Ansible Navigator Documentation

eb208da3c0f04a19bf4efd0a58965599.png

在nginx中使用:

#适用于RHEL9
1)sudo yum -y install ansible-core ansible-navigator
2) mkdir ~/ansible && cd ~/ansible #目录名称并不限制必须为ansible,要视情况而定,但是目录下的ansible.cfg和inventory文件是不可或缺的
3) vim ansible.cfg
[defaults]
inventory=inventory #清单文件
role_path=roles #角色目录
remote_user=xxx #远程用户
[privilege_escalation] #sudo提权
become=True #是否提权
become_method=sudo #提权方式
become_user=root #提权用户
become_ask_pass=False #是否需要密码4)vim inventory
略。。。
5) mkdir roles # 创建角色目录
6)ansible all -m ping #测试是否能够ping通所有inventory记录的主机
7)vim ~/.ansible-navigator.yml
--- 
ansible-navigator: execution-environment: image: registry.lab.example.com:5000/ee-supported-rhel8:latest pull: policy: missing 8) sudo vim /etc/containers/registries.conf #修改容器配置。。。略
[registries.search] 
registries = ['registry.lab.example.com:5000'] 
[registries.insecure] 
registries = ['registry.lab.example.com:5000'] 
9)podman login registry.lab.example.com
按照题目提示输入用户名,密码
10)ansible-navigator images #下载镜像
11)podman images #查看镜像

# 注意:image的值看考题给的是什么,不要照抄

例题1-自定义角色:

根据下列要求,在/home/alice/ansible/roles 中创建名为httpd的角色:

1)安装 httpd 软件,并能够开机自动运行

2)开启防火墙,并允许 httpd 通过

3)使用模板 index.html.j2,用来创建/var/www/html/index.html 网页, 内容如下(HOSTNAME是受管理节点的完全域名,IPADDRESS是IP地址):

Welcome to HOSTNAME on IPADDRESS

然后创建剧本 /home/alice/ansible/myrole.yml,为webtest主机组启用httpd角色。

ansible目录下的ansible.cfg文件(注意要定义roles_path)和inventory文件,略。。。
1) cd ~/ansible
2) mkdir roles
3) cd roles
4) ansible-galaxy init httpd
5) ls httpd
6) vim httpd/templates/index.html.j2
Welcome to {{ansible_fqdn}} on {{ansible_enp1s0.ipv4.address}} 
7) vim httod/tasks/main.yml #编辑任务文件
---  
- yum:name: httpd
- service:name: httpdstate: startedenabled: yes
- template:src: index.html.j2dest: /var/www/html/index.html
8) cd ~/ansible
9) vim myrole.yml
---  
- hosts: webtestroles:- httpd  
10) ansible-playbook myrole.yml #执行剧本

如果是从网络资源下载角色:

网址:Ansible Galaxy

ad2e3214a3be4ba09bc6d4143a763a0f.png

#1.通过galaxy 安装角色与collection 
创建剧本~/ansible/roles/down.yml,用来从以下 URL 下载角色, 
并安装到~/ansible/roles 目录下: 
http://server1.lab0.example.com/roles/haproxy.tar 此角色名为 haproxy 
http://server1.lab0.example.com/roles/myphp.tar 此角色名为 myphp 从http://server1.lab0.example.com/materials/下载如下 collection 并安装到
~/ansible/collections 目录下(仅适用于 RHEL9): 
ansible-posix-1.5.1.tar.gz 
community-general-6.3.0.tar.gz 解题参考: 
# ~/ansible目录下
1) vim  roles/down.yml 
- src: http://server1.lab0.example.com/roles/haproxy.tar name: haproxy 
- src: http://server1.lab0.example.com/roles/myphp.tar name: myphp 2) ansible-galaxy  install -r  roles/down.yml #从上图可知,ansible-galaxy collection install 网络角色,且有下载路径要求的使用下方命令,注意使用"-p"参数
3) ansible-galaxy collection install \ 
http://server1.lab0.example.com/materials/ansible-posix-1.5.1.tar.gz \ 
-p ~/ansible/collections 4)ansible-galaxy collection install \ 
http://server1.lab0.example.com/materials/community-general-6.3.0.tar.gz \ 
-p ~/ansible/collections 注意:http://server1.lab0.example.com为假设场景中的linux真机#使用上述通过galaxy下载的角色 
1)vim web.yml
--- 
- hosts: test05                          roles: - haproxy                            
- hosts: webtest                         roles: - myphp                              
2) ansible-playbook web.yml 
3)使用curl命令查看效果

4.在playbook,通过role引入要使用的模块

十一、加解密

1.加密:

ansible-vault encrypt 文件

2.解密:

ansible-vault decrypt 文件

3.改密码:

ansible-vault rekey 文件

4.执行加密的playbook:

ansible-playbook --ask-vault-password 文件

十二、特殊主机清单变量

1.ansible_ssh_user:指定登录远程主机的用户名

2.ansible_ssh_pass:指定登录远程主机的密码

3.ansible_ssh_port:指定登录远程主机的端口号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/14495.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IP地址显示“不安全”怎么办|已解决

解决IP地址显示“不安全”的问题&#xff0c;通常需要确保网站或服务使用HTTPS协议进行加密通信&#xff0c;可以通过部署SSL证书来解决&#xff0c;以下是具体的解决步骤&#xff1a; 1 申请IP地址SSL证书&#xff1a;网站管理员应向证书颁发机构&#xff08;CA&#xff09;申…

网络拓扑—WEB-IIS服务搭建

文章目录 WEB-IIS服务搭建网络拓扑配置网络IISPC 安装IIS服务配置IIS服务&#xff08;默认站点&#xff09;PC机访问网页 配置IIS服务&#xff08;新建站点&#xff09;PC机访问网页 WEB-IIS服务搭建 网络拓扑 //交换机忽略不计 IIS服务IP&#xff1a;192.168.1.1 PC机IP&…

人类交互2 听觉处理和语言中枢

人类听觉概述 人类听觉是指通过耳朵接收声音并将其转化为神经信号&#xff0c;从而使我们能够感知和理解声音信息的能力。听觉是人类五种感觉之一&#xff0c;对我们的日常生活和交流至关重要。 听觉是人类交流和沟通的重要工具。通过听觉&#xff0c;我们能够听到他人的语言…

安装错误提示Please run MaterialLibrary2018.msi first或者其他MaterialLibrary版本

打开autoremove&#xff0c;系统检查&#xff0c;点击开始检查。检查完成修复。 可以解决部分该问题&#xff0c;如果没解决的请咨询

Linux中的文件描述符

1.系统调用接口和库函数的关系 函数&#xff1a;fopen fclose fread fwrite 都是c标准库当中的函数&#xff0c;也就是用户操作接口中ibc系统调用&#xff1a;open close read write 都是系统调用提供的接口 c语言中接口底层封装的都是系统调用接口 FILE* stdin stdout stderr…

Python模块、包和异常处理

大家好&#xff0c;在当今软件开发领域&#xff0c;Python作为一种简洁、易读且功能强大的编程语言&#xff0c;被广泛应用于各种领域。作为一名测试开发工程师&#xff0c;熟练掌握Python的模块、包和异常处理是提高代码可维护性和错误处理能力的关键。本文将和大家一起探讨Py…

SAP-MRP和采购申请

1、如果采购申请是手工创建的,跑MRP会不会被覆盖? 创建一个采购申请18089476,然后运行MRP-MD03,再用MD04查看下 从上图看,手工创建的采购申请被打上*号,没有被覆盖掉。 2、如果采购申请被审批了,会不会被覆盖掉? 首先创建一个独立需求MD61 然后库存消耗掉为0,运行M…

普源精电收购耐数电子——用“钞能力”拿下“量子”?

「量子市界」聚焦量子前沿&#xff0c;揭秘市场动态┃2024年4月30日&#xff0c;普源精电新增“量子科技”概念。 似乎一夜之间&#xff0c;新增“量子科技”概念的上市企业如雨后春笋般登场——普源精电就是其一。普源精电本就持有耐数电子32.26%股权&#xff0c;于4月2日发布…

c4d云渲染是工程文件会暴露吗?

在数字创意产业飞速发展的今天&#xff0c;C4D云渲染因其高效便捷而备受欢迎。然而&#xff0c;随着技术应用的深入&#xff0c;人们开始关注一个核心问题&#xff1a;在享受云渲染带来的便利的同时&#xff0c;C4D工程文件安全吗&#xff1f;是否会有暴露的风险&#xff1f;下…

【如何让论文中摘要后面的内容不出现在目录中】

首先选择摘要二字&#xff0c;设置为一级标题&#xff0c;然后选择摘要后面的内容设置为正文样式&#xff0c;再选择这一部分看一下是不是都是正文大纲级别&#xff0c;如果是那就可以了。 具体流程如下 1、选择摘要二字&#xff0c;设置为一级标题样式 2、选择摘要后面的文…

x264 码率控制原理:rate_estimate_qscale 函数

rate_estimate_qscale 函数 原理 函数功能:根据目前使用的实际比特数更新一帧的qscale;是一个复杂的决策过程,需要考虑多种因素,如帧类型、编码的复杂度、目标比特率、缓冲区大小等,以确保视频质量和文件大小之间的平衡。函数参数分析:x264_t *h :编码器上下文信息结构…

扩散模型学习1

DDPM 总体训练原理 https://www.bilibili.com/video/BV1nB4y1h7CN/?spm_id_from333.337.search-card.all.click&vd_sourcef745c116402814185ab0e8636c993d8f 讲得很好&#xff1a;每次都是输入t和noise-x的图像&#xff0c;预测noise之后得到和加入的noise比较&#xff1b…

LLM实战:当网页爬虫集成gpt3.5

1. 背景 最近本qiang~关注了一个开源项目Scrapegraph-ai&#xff0c;是关于网页爬虫结合LLM的项目&#xff0c;所以想一探究竟&#xff0c;毕竟当下及未来&#xff0c;LLM终将替代以往的方方面面。 这篇文章主要介绍下该项目&#xff0c;并基于此项目实现一个demo页面&#x…

Java并发: 锁和同步

在Java并发: 面临的挑战那一篇中我们提到锁和同步是实现并发安全(可见性/原子性)的方法之一。这一章我们来讲讲Java中的锁和同步的各种工具&#xff0c;包括: LockSupportAbstractQueuedSynchronizerJava内置的锁实现 1. LockSupport LockSupport是基于Unsafe的park/unpark实…

智能禁区监控:计算机视觉在人员禁区闯入检测中的应用

基于视觉分析的人员禁区闯入行为检测算法主要依赖于计算机视觉技术和深度学习算法。这些技术结合高性能的摄像头和图像处理硬件&#xff0c;实现了对监控区域内人员行为的自动识别和分析。具体来说&#xff0c;这种检测算法利用摄像头捕捉的视频数据&#xff0c;通过深度学习模…

Kubernetes 应用滚动更新

Kubernetes 应用版本号 在 Kubernetes 里&#xff0c;版本更新使用的不是 API 对象&#xff0c;而是两个命令&#xff1a;kubectl apply 和 kubectl rollout&#xff0c;当然它们也要搭配部署应用所需要的 Deployment、DaemonSet 等 YAML 文件。 在 Kubernetes 里应用都是以 …

nssctf——web

[SWPUCTF 2021 新生赛]gift_F12 1.打开环境后&#xff0c;这里说要900多天会有flag&#xff0c;这是不可能的 2.f12查看源码&#xff0c;然后在html中查找flag &#xff08;在最上方的栏目中&#xff0c;或者按ctrlf&#xff09; [SWPUCTF 2021 新生赛]jicao 1.打开环境是一段…

Vue速成学习笔记

这两天速成了一下Vue&#xff0c;在这里记录一下相关的笔记&#xff0c;之后有时间详细学Vue的时候再来回顾一下&#xff01; 一、Vue理解 1、Vue的核心特征&#xff1a;双向绑定。 在网页中&#xff0c;存在视图和数据。在Vue之前&#xff0c;需要使用JavaScript编写复杂的逻…

音视频及H264/H256编码相关原理

一、音视频封装格式原理&#xff1a; 我们播放的视频文件一般都是用一种封装格式封装起来的&#xff0c;封装格式的作用是什么呢&#xff1f;一般视频文件里不光有视频&#xff0c;还有音频&#xff0c;封装格式的作用就是把视频和音频打包起来。 所以我们先要解封装格式&#…

谷歌上架,个人号比企业号好上?“14+20”封测如何解决,你知道了吗

在Google Play上架应用&#xff0c;对开发者而言&#xff0c;既是挑战也是机遇。随着谷歌政策的不断更新&#xff0c;特别是要求2023年11月13日后注册的个人开发者账号在发布正式版应用前&#xff0c;必须经过20人连续14天的封闭测试。 这一政策的改变使得许多开发者开始考虑使…