ansible-unarchive模块

ansible-unarchive模块,第1张

unarchive模块

功能:解压缩,这个模块有两种用法:

1、将ansible主机上的压缩包在本地解压缩后传到远程主机上,这种情况下,copy=yes   本地解压缩,解压缩位置不是默认的目录,没找到或传完删了      后传到远程主机

2、将远程主机上的某个压缩包解压缩到指定路径下。这种情况下,需要设置copy=no     远程主机上面的 *** 作,不涉及ansible服务端

参数:

copy:默认为yes,当copy=yes,那么拷贝的文件是从ansible主机复制到远程主机上的,如果设置为copy=no,那么会在远程主机上寻找src源文件

src:源路径,可以是ansible主机上的路径,也可以是远程主机上的路径,如果是远程主机上的路径,则需要设置copy=no

dest:远程主机上的目标路径

mode:设置解压缩后的文件权限

命令演示:

在远程主机上解压文件并设置权限:

ansible all -m unarchive -a 'src=/srv/tomcat8/apache-tomcat-8029targz dest=/usr/local copy=no mode=0755'

解压ansible管理机上的压缩文件到远程主机并设置权限:

ansible all -m unarchive -a "src=/tmp/install/zabbix-304targz dest=/tmp/ mode=0755 copy=yes"

原文地址: Ansible系列-基础篇-Ansible 的安装、配置和基本使用

1、Ansible 目前支持Linux和MacOS作为控制节点,管理节点可以是Linux、MacOS、其他类Unix系统和Windows。

2、Ansible 节点主要分为两类,管理节点和被管理节点

需要主要的是 管理节点 和 被管理节点 之间需要配置好 SSH免密通道

3、如果可以的话,个人建议Python还是使用30以上版本,虽然系统预装了 275 但是官方都宣布不再维护该版本了,其他类似 openssl 、 git 等系统默认的版本就已经满足

4、本系列教程用到的环境

1、方式一 包管理器安装

比如 CentOS 、 Fedora 、 Redhat 等系统下使用 yum , Mac下使用 brew , Ubuntu、Debian等系统使用 apt-get ,如上说明,本系列都是在Centos系统下进行

2、方式二 源码安装

源码安装一般是为了尝鲜安装的最新版本,用的较少

3、方式三 采用Python PIP包安装

这里 建议采用方式三安装 ,Python可以通过 pyenv 来管理虚拟环境,同时后续可以通过 Ansible API 进行Python集成,方便平台化定制开发

Ansible 安装成功之后的验证

在正式聊 Ansible 配置之前,我们可以先仔细观察下上面 ansible --version 的输出结果,其中 config file 是 Ansible 配置文件存放的位置, 另外注意 jinja 和 libyaml ,其中 jinja 是 Ansible Role 中的 templates 用到的,而 libyaml 是 Ansible playbook 编写时用到的文件格式,具体我们都会在后续文章中进行详细说明。这里先了解下就行。

其实这里还有个文件格式没有展示出来,就是 Ansible Inventory 文件的格式 ,采用的是 ini 格式

好了我们正式聊聊如果配置 Ansible,其实除了上面提到的 config file 制定的配置之外。Ansible 会从以下方式按照由上到下优先级加载配置

ansiblecfg 配置文件详解

ansiblecfg 的配置项很多,实际环境中其实不会所有的配置项都配置,遵循二八法则。而且 Ansible 没有启动服务一说,说明配置文件的更改是即时生效的。

这里先看看本环境中用到的配置,然后做详细说明

Ansible 免密登录

在配置之前,先说个 运维规范 ,一般为了安全要求,Linux环境会禁用密码登录,采用公私钥对登录(特殊主机建议禁用root登录),因为通过ansible管理一般都是内网,这里默认是允许root登录的。

这里可能可能有人会问,为啥不统一也把root登录给全部禁用呢,这样岂不是更安全呢?

所以视自己实际环境而定哦

好了,我们回到正题,我们知道Ansible的调用是通过ssh远程执行,如果在配置文件中配置了 private_key_file 那么不管你使用哪个账号去执行,对应的公钥就是该私钥匹配的, 这样就会导致不同账号得使用相同的公私钥,这样不安全,也不友好

实际中,在配置文件中不配置 private_key_file , 然后新增的SA账号单独配置免密登录,员工离职清理账号也不影响其他人。

至于如果配置SSH免密登录,网上教程一大堆,这里就不啰嗦了

这里我们在 /etc/ansible/inventory/prohosts 配置几个测试主机,类似

这种命令执行的方式叫做 Ad-hoc , 具体 Ansible 都有哪些内置模块,可以参考 AnsibleBuiltin

如果知道模块,但是不知道怎么用,可以尝试 ansible-doc -s module-name ,比如上面的 shell 模块

下一篇我们来说说工作中常用的模块及其用法

参考:

1、 >

一、ansible入门

1介绍

Ansible是一种IT自动化工具。它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署,滚动更新。Ansible适用于管理企业IT基础设施,从具有少数主机的小规模到数千个实例的企业环境。Ansible也是一种简单的自动化语言,可以完美地描述IT应用程序基础结构。

具备以下三个特点:

2、组成

1连接插件connection plugins用于连接主机 用来连接管理端

2核心模块core modules连接主机实现 *** 作, 它依赖于具体的模块来做具体的事情

3自定义模块custom modules根据自己的需求编写具体的模块

4插件plugins完成模块功能的补充

5剧本playbookansible的配置文件,将多个任务定义在剧本中,由ansible自动执行

6主机清单inventor定义ansible需要 *** 作主机的范围

最重要的一点是 ansible是模块化的 它所有的 *** 作都依赖于模块

3、执行流程

1Ansible读取playbook剧本,剧本中会记录对哪些主机执行哪些任务。

2首先Ansible通过主机清单找到要执行的主机,然后调用具体的模块。

3其次Ansible会通过连接插件连接对应的主机并推送对应的任务列表。

4最后被管理的主机会将Ansible发送过来的任务解析为本地Shell命令执行。

二、ansible安装

三、主机清单配置

1基于密码

2基于密钥

四、主机分类

五、测试

为什么要自动化运维

我们以 10 台机器部署 Nginx 为例。部署步骤如下:

1、通过 ssh 登录一台机器;

2、yum install -y nginx 或者 获取安装包自行编译安装;

3、配置 Nginx

4、启动 Nginx ,如有必要加入开机自启动;

5、退出登录

上面步骤重复 10 次,即可完成我们的部署要求。

痛点:

1、重复 *** 作频繁,增加了人工成本和后续维护成本;

2、机器太多时,容易落下某些机器且未 *** 作,进而产生后续影响;

3、人工频繁 *** 作时可能有 *** 作步骤不完整的情况,造成该机器和其他机器状态不一致。

我们还是以 10 台机器部署 Nginx 为例。部署步骤如下:

1、在控制机或者称为管理机的机器上写好相关脚本。「当然该脚本我们是测试通过的,脚本中包括安装、配置、启动等等」

2、将写好的脚本从控制机推送到受控机;

3、在受控机执行相关脚本,根据脚本部署我们需要的 Nginx。

好处

1、减少了重复 *** 作,提高了工作效率;

2、减小了出错几率,提高了准确率;

3、所有机器状态一致,降低了后续维护成本。

软件安装部署

配置同步

代码变更

命令执行

任务执行

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

Ansible 是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是 Ansible 所运行的模块,Ansible 只是提供一种框架。进而能减少我们的重复 *** 作,提高工作效率。

Ansible 不需要在远程主机上安装 client/agents,因为它们是基于 SSH 来和远程主机通讯的。

Ansible 目前已经已经被红帽官方收购,是自动化运维工具中大家认可度最高的,并且上手容易,学习简单。是每位运维工程师必须掌握的技能之一。

1、批量执行远程命令:可以对 N 台主机同时进行命令的执行;

2、批量配置软件服务:可以用自动化的方式管理配置和服务;

3、实现软件开发功能:例如 jumpserver 底层使用 Ansible 来实现自动化管理;

4、编排高级的 IT 任务:Ansible 的 Playbooks 是一门编程语言,可以用来描绘一套 IT 架构。

1、部署简单,只需在主控端部署 Ansible 环境,被控端无需做任何 *** 作;

2、安全可靠,默认使用 SSH 协议对被控端进行管理;

3、有大量的常规运维 *** 作模块,可实现日常绝大部分 *** 作;

4、配置简单、功能强大、扩展性强;

5、支持 API 及自定义模块,可通过 Python 轻松扩展;

6、通过 Playbooks 来定制强大的配置、状态管理;

7、轻量级,无需在客户端安装 Agent,更新时只需在 *** 作机上进行一次更新即可。

模块说明如下:

Ansible:Ansible 核心程序。

Host Inventory:记录由 Ansible 管理的主机信息清单,包括端口、密码、IP 等。

Playbooks:“剧本” YAML 格式文件,多个任务定义在一个文件中,定义主机需要调用哪些模块来完成的功能。

Core Modules:核心模块,主要 *** 作是通过调用核心模块来完成管理任务。

Custom Modules:自定义模块,完成核心模块无法完成的功能,支持多种语言。

Connection Plugins:连接插件,Ansible 和 Host 通信使用

Ansible 控制主机对被管节点的 *** 作方式可分为两类,即 ad-hoc 和 playbook:

ad-hoc 模式(点对点模式)

使用单个模块,支持批量执行单条命令。ad-hoc 命令是一种可以快速输入的命令,而且不需要保存起来的命令。 就相当于 bash 中的一句 shell。

playbook 模式(剧本模式)

是 Ansible 主要管理方式,也是 Ansible 功能强大的关键所在。 playbook 通过多个 tasks 集合完成一类功能 ,如 Web 服务的安装部署、数据库服务器的批量备份等。可以简单地把 playbook 理解为通过组合多条 ad-hoc *** 作的配置文件。

简单理解就是:Ansible 在运行时,首先读取 ansiblecfg 中的配置,根据规则获取 Inventory 中的管理主机列表,并行的在这些主机中执行配置的任务,最后等待执行返回的结果。

1、加载自己的配置文件,默认 /etc/ansible/ansiblecfg;

2、查找对应的主机配置文件,找到要执行的主机或者组;

3、加载自己对应的模块文件,如 command;

4、通过 Ansible 将模块或命令生成对应的临时py文件(python脚本),并将该文件传输至远程服务器;

5、对应执行用户的家目录的 ansible/tmp/XXX/XXXPY文件;

6、给文件 +x 执行权限;

7、执行并返回结果;

8、删除临时py文件,sleep 0退出;

Ansible是一个自动化管理IT资源的工具。

系统环境配置

安装软件

持续集成:自动化部署

热回滚

无客户端

推送式

丰富的第三方module,大概1W多个

基于YAML的Playbook

商业化的支持

效率低,易挂起:基于ssh通信

并发性能差

环境准备

Python

Setuptools

pip(可选): pip install ansible

git clone >

以上就是关于ansible-unarchive模块全部的内容,包括:ansible-unarchive模块、Ansible系列-基础篇-Ansible 的安装、配置和基本使用、ansible的使用和安装等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9764711.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存