首页 > 其他分享 >Ansible部署和模块应用

Ansible部署和模块应用

时间:2024-07-24 14:52:49浏览次数:9  
标签:文件 部署 主机 ansible 指定 Ansible 模块 远程

目录

1.Ansible的概述

ansible 自动化运维工具,也叫机器管理工具。也可以实现批量管理成百上千的多台主机,是应用级别跨主机编排工具。

(1)ansible的特性

(1)无客户端agent,不需要在被控制的主机节点上安装任何客户端应用
(2)控制节点是通过ssh协议与被控制的主机节点通信的
(3)基于模块工作的,可以通过模块实现在被控制的主机节点上执行相应的操作
(4)很多模块具有幂等性,可以实现多次模块操作的状态如果没有发生改变,则不会重复执行

2.ansible 环境安装部署

systemctl disable --now firewalld
setenforce 0
vim /etc/selinux/config
       disabled
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum install -y epel-release	
yum install -y ansible



  • ansible 目录结构

  • 配置主机清单

  • 配置密钥对验证

3.ansible 的常用模块

  • ansible命令格式
ansible-doc -l                  #列出当前ansible支持的模块列表,按q退出
ansible-doc -s 模块名           #查看模块的详细信息
ansible 组名 -m 模块名 -a '模块参数'



(1)command 模块

在远程主机执行linux命令,但不支持管道、重定向等特殊符号,是ansible默认的模块

常用的参数
chdir 在远程主机上运行命令前提前进入目录
creates 判断指定文件是否存在,如果存在,不执行后面的操作
removes 判断指定文件是否存在,如果存在,执行后面的操作









(2)shell 模块

在远程主机执行linux命令,支持管道、重定向等特殊符号
chdir 、 creates 、 removes


(3)cron 模块

在远程主机设置crontab计划任务
present表示添加(可以省略),absent表示移除。

常用的参数
minute
hour
day
month
weekday
job 任务计划要执行的命令
name 任务计划的名称
user 指定计划任务属于哪个用户,默认是root用户


(4)user 模块

在远程主机管理用户账号

常用的参数
state=present 或 absent 创建账号或者删除账号,present表示创建,absent表示删除
system=yes 或 no 是否为系统账号
uid 用户uid
group 用户基本组
groups 用户所属附加组
shell 默认使用的shell
create_home=yse 或 no 是否创建家目录
password 用户的密码,建议使用加密后的字符串
remove=yes或no 当state=absent时,是否删除用户的家目录





(5)group 模块

在远程主机管理组账号
name 、 gid 、 state=present|absent



(6)copy 模块

复制本地的文件/目录/内容到远程主机

常用的参数
dest 指出复制文件的目标及位置,使用绝对路径,如果源是目录,指目标也要是目录,如果目标文件已经存在会覆盖原有的内容
src 指出源文件的路径,可以使用相对路径或绝对路径,支持直接指定目录,如果源是目录则目标也要是目录
mode 指出复制时,目标文件的权限
owner 指出复制时,目标文件的属主
group 指出复制时,目标文件的属组
content 指出复制到目标主机上的内容,不能与src一起使用




(7)fetch

将远程主机的文件/目录复制到本地
src 、 dest

(8)file 模块

在远程主机管理文件/目录
path 、 mode 、 owner 、 group 、 state=absent|touch|directory|link 、 src(指定软链接源文件路径,path指定链接文件路径)




(9)hostname 模块

在远程主机设置主机名
name

(10)ping 模块

检测与远程主机的网络连通性

(11)yum/apt 模块

在远程主机通过yum|apt管理软件包
name state=present|latest|absent



(12)service/systemd 模块

在远程主机通过service|systemctl管理服务状态

常用的参数
name 被管理的服务名称
state=started或stopped或restarted或reloaded 动作包含启动关闭或者重启
enabled=yes或no 表示是否设置该服务开机自启
runlevel 如果设定了enabled开机自启去,则要定义在哪些运行目标下自启动




(13)script 模块

在远程主机执行脚本





(14)mount 模块

在远程主机执行挂载和解挂载操作

常用的参数
src 定义挂载设备的路径
path 定义挂载到哪个目录,必须指定
fstype 指定挂载文件的系统类型,必须指定,xfs、iso9660、nfs...
opts 定义挂载的参数,defaults、rw、ro...
state 定义挂载的状态,mounted(进行挂载,修改/etc/fstab信息)、absent(永久性卸载,并修改 /etc/fstab信息)、unmounted(临时卸载,不修改/etc/fstab信息)







(15)archive 模块

在远程主机压缩文件/目录

常用的参数
path 必须参数,远程主机上需要被打包压缩的源文件/目录
dest 打包压缩后的包文件路径(包文件的父目录必须存在);如果包文件已存在,则会被覆盖
format 指定压缩类型,包括: bz2、gz(默认)、tar、xz、zip
remove=yes或no 是否删除源文件



(16)unarchive 模块

将本地或远程主机的压缩包解压缩到远程主机的指定位置

常用的参数
copy 默认为 copy=yes ,拷贝的文件从 ansible 主机复制到远程主机,copy=no 表示在远程主机上寻找源文件解压
src tar包源路径,可以是 ansible 主机上的路径,也可以是远程主机上的路径,如果是远程主机上的路径,则需设置 copy=no
dest 解压后文件的目标绝对路径
remote_src 和 copy 功能一样且互斥,设置 remote_src=yes 表示文件在远程主机上,设置为 remote_src=no 表示文件在 ansible 主机上




(17)replace 模块

在远程主机通过正则表达式匹配文件内容进行修改

常用的参数
path 必须参数,指定要修改的文件
regexp 必须参数,指定一个正则表达式
replace 替换regexp参数匹配到的字符串
backup=yes或no 修改源文件前创建一个包含时间戳信息的备份文件
before 如果指定,则仅替换/删除此匹配之前的内容,可以和after参数结合使用
after 如果指定,则仅替换/删除此匹配之后的内容,可以和before参数结合使用
owner 修改文件用户名
group 修改文件组名
mode 修改文件权限






(18)setup 模块

通过ansible_facts组件收集远程主机的系统信息(facts信息)






4.inventory 主机清单

Inventory支持对主机进行分组,每个组内可以定义多个主机,每个主机都可以定义在任何一个或多个主机组内。
如果是名称类似的主机,可以使用列表的方式标识各个主机。
主机清单配置文件/etc/ansible/hosts

(1)格式

[组名]
主机IP[:ssh端口]          #ssh端口默认为 22
主机名[:ssh端口]
主机IP[0:255]             #设置连续的主机列表范围
主机名[a:z]
主机IP   ansible_port=   ansible_user=   ansible_password=   ....      #设置主机变量

[组名:vars]                #设置组变量
ansible_port=
ansible_user=
ansible_password=
....

[大组名:children]          #设置组嵌套
组名1
组名2
....






(2)inventory 中的变量

Inventory变量名 含义
ansible_host ansible连接节点时的IP地址
ansible_port 连接对方的端口号,ssh连接时默认为22
ansible_user 连接对方主机时使用的用户名。不指定时,将使用执行ansible或ansible-playbook命令的用户
ansible_password 连接时的用户的ssh密码,仅在未使用密钥对验证的情况下有效
ansible_ssh_private_key_file 指定密钥认证ssh连接时的私钥文件
ansible_ssh_common_args 提供给ssh、sftp、scp命令的额外参数
ansible_become 允许进行权限提升
ansible_become_method 指定提升权限的方式,例如可使用sudo/su/runas等方式
ansible_become_user 提升为哪个用户的权限,默认提升为root
ansible_become_password 提升为指定用户权限时的密码

(1)主机变量



(2)组变量

表示为所有组内的所有主机定义变量

(3)组嵌套

标签:文件,部署,主机,ansible,指定,Ansible,模块,远程
From: https://www.cnblogs.com/zsy828/p/18315560

相关文章

  • 玩转大模型之三(FastGPT+OneAPI本地部署)
    一、服务器服务器:一台Linux16核32GIP:10.33.19.16基础环境:Docker、Docker-Compose二、FastGPT安装首先下载docker-compose.yml和config.json两个文件mkdirfastgptcdfastgptcurl-Ohttps://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/......
  • MM6100 MOTOROLA 可信处理器模块
    品牌、MOTOROLA品名:可信处理器模块接口:4通道电流:24毫安原产地:USA美国MM6100系列是首款采用TundraTs41*VMEbus接口芯片设计的MEbu单板计算机(SCO,提供2eSTVMEbus性能.2essT两个边象源同步传输协议便VMEbus在大多数情况下以320MB/s的实际带宽运行。MVME162PA-344SE-G2......
  • python Subprocess 模块
    Subprocess介绍subprocess模块是Python标准库中的一个模块,用于管理子进程(子程序)。通过subprocess模块,可以在Python脚本中启动新的进程、连接到它们的输入/输出流以及获取它们的返回值。Subprocess主要功能1.执行外部命令:subprocess允许你在Python脚本中执行系统命......
  • 基于Java+SpringBoot+Vue的卓越导师双选系统的设计与开发(源码+lw+部署文档+讲解等)
    文章目录前言项目背景介绍技术栈后端框架SpringBoot前端框架Vue数据库MySQL(MyStructuredQueryLanguage)具体实现截图详细视频演示系统测试系统测试目的系统功能测试系统测试结论代码参考数据库参考源码获取前言......
  • 模块2 面向对象编程初级 --- 第六章:创建对象
    第六章创建对象主要知识点:1、类的实例化2、构造方法3、对象的使用4、对象的清除学习目标:根据定义的类进行实例化,并且运用对象编写代码完成一定的功能。本章对类进行实例化,生成类的对象,利用对象开始软件的设计过程,掌握对象的使用方法。6.1创建对象概......
  • 本地部署GPT全流程自动化文件
    FastGPTdocker-compose.yml#数据库的默认账号和密码仅首次运行时设置有效#如果修改了账号密码,记得改数据库和项目连接参数,别只改一处~#该配置文件只是给快速启动,测试使用。正式使用,记得务必修改账号密码,以及调整合适的知识库参数,共享内存等。version:'3.5'services:......
  • 二分模块的相关性
    在寻找保持列表排序而不考虑插入和删除的方法时,我遇到了bisect和sortedcontainers模块。bisect的insort功能是O(n)因为它结合了bisect_leftO(logn)和|||然而,一个等效的操作insertO(n)defins......
  • AttributeError:模块“numpy”没有属性“concat”
    我编写了一些简单的代码来迭代我正在分析的一组列表,并且发现了此错误-模块“numpy”没有属性“concat”,在这种情况下会有解决方案吗?`我们将用于此分析的股票tech_list=['AMZN','NVDA','VOO','QQQ']设置数据抓取的结束和开始时间tech_list=['AMZN'......
  • 基于Java+SpringBoot+Vue的精品在线试题库系统的设计与开发(源码+lw+部署文档+讲解等)
    文章目录前言项目背景介绍技术栈后端框架SpringBoot前端框架Vue数据库MySQL(MyStructuredQueryLanguage)具体实现截图详细视频演示系统测试系统测试目的系统功能测试系统测试结论代码参考数据库参考源码获取前言......
  • DB-GPT应用部署测试
    环境要求启动模式CPU*MEMGPU备注代理模型4C*8G代理模型不依赖GPU本地模型8C*32G24G本地启动最好有24G以上GPUconda环境安装默认数据库使用SQLite,因此默认启动模式下,无需安装数据库。如果需要使用其他数据库,可以看后面的高级教程。我们推荐通过conda......