自动化运维工具Ansible基础部署与使用

2023-11-06

目录

一、安装部署

二、 配置

Ansible最基础的模块为ping模块,主要用于判断远程客户端是否在线,用于ping本身服务器,返回值为changed、ping。

三、ansible批量管理

Ⅰ、shell模块

Ⅱ、copy模块

Ⅲ、yum模块

Ⅳ、file模块 

Ⅴ、cron模块

Ⅵ、user模块

Ⅶ、service模块

Ⅷ、synchronize

四、ansible剧本


一、安装部署

yum install epel-release
#Centso 需要设置EPEL仓库

yum install ansible
#安装ansible 

ansible --version
#查看ansible版本

二、 配置

测试环境

ansible      192.168.116.26

test server 192.168.116.27

cd /etc/ansible
ls
ansible.cfg  hosts  roles

在hosts文件中写入记录

如果想要对主机组使用root权限的操作,需要做以下设置

vim /etc/ansible/ansible.cfg

 然后在./hosts文件中相应主机组下进行设置

[test]
192.168.11.13 ansible_become_pass=12345678
192.168.11.14 ansible_become_pass=12345678

或者

[test]
192.168.11.13
192.168.11.14
 
[test:vars]
ansible_become_pass=12345678

分发ssh密钥

ssh-keygen -t rsa

ssh-copy-id 192.168.116.27

Ansible最基础的模块为ping模块,主要用于判断远程客户端是否在线,用于ping本身服务器,返回值为changed、ping。

测试组群testserver下的机器能否ping通

ansible -i /etc/ansible/hosts 'testserver' -m ping

或者ping某一网段的机器

ansible 192.168.116.* -w ping

三、ansible批量管理

Ⅰ、shell模块

# Ansible shell模块主要用于远程客户端上执行各种Shell命令或者运行脚本,远程执行命令通过/bin/sh环境来执行,支持比command更多的指令,Shell模块使用详解:

# 常用参数
chdir					执行命令前,切换到目录;
creates					当该文件存在时,则不执行该步骤;
executable				换用shell环境执行命令;
free_form				需要执行的脚本;
removes					当该文件不存在时,则不执行该步骤;
warn					如果在ansible.cfg中存在告警,如果设定了False,不会警告此行。

命令格式

ansible [组群名] -m shell -a "shell命令"

例如,创建目录/查看

ansible testserver -m shll -a "mkdir test;ls /"

Ⅱ、copy模块

# Ansible copy模块主要用于文件或者目录拷贝,支持文件、目录、权限、用户组功能,copy模块使用详解:

# 常用参数
src		 	 	Ansible端源文件或者目录,空文件夹不拷贝;
content		 	用来替代src,用于将指定文件的内容,拷贝到远程文件内;
dest			    客户端目标目录或者文件,需要绝对路径;
backup			# 拷贝之前,先备份远程节点上的原始文件;backup=yes
directory_mode	用于拷贝文件夹,新建的文件会被拷贝,而老旧的不会被拷贝;
follow			支持link文件拷贝;
force			覆盖远程主机不一致的内容;
group		 	设定远程主机文件夹的组名;
mode		 	指定远程主机文件及文件及的权限;
owner		 	设定远程主机文件夹的用户名,拥有者。

例如,将ansible主机上的文件复制到目标主机

ansible testserver -m copy -a "src=/test.txt dest=/ mode=755"

定义文件,目的位置和权限 

Ⅲ、yum模块

#Ansible yum 模块主要用于软件的安装、升级、卸载,支持红帽.rpm软件的管理,YUM模块使用详解:
# 常用参数
conf_file					    设定远程yum执行时所依赖的yum配置文件
disable_gpg_check			    安装软件包之前是否坚持gpg  key;
name						    需要安装的软件名称,支持软件组安装;
update_cache				    安装软件前更新缓存;
enablerepo					    指定repo源名称;
skip_broken      			    跳过异常软件节点;
state						    #软件包状态,包括:installed、present、latest、absent、removed。

下载 、卸载

ansible testserver -m yum -a "name=httpd state=installed/removed"

Ⅳ、file模块 

# Ansible file模块主要用于对文件的创建、删除、修改、权限、属性的维护和管理,File模块使用详解:

# 常用参数介绍
src					   Ansible端源文件或者目录;
follow				   支持link文件拷贝;
force				   覆盖远程主机不一致的内容;
group				   设定远程主机文件夹的组名;
mode				   指定远程主机文件及文件及的权限;
owner				   设定远程主机文件夹的用户名;
path				   目标路径,也可以用dest,name代替;
state				  #状态包括:file、link、directory、hard、touch、absent;
attributes			   文件或者目录特殊属性。

创建文件或目录,可以指定文件/目录名、权限以及所属 

ansible testserver -m file -a "path=/opt/test.txt state=directory/touch 
mode=644 owner=paul "

Ⅴ、cron模块

# Ansible cron模块主要用于添加、删除、更新操作系统Crontab任务计划,Cron模块使用详解:

# 常用参数
name      					任务计划名称;
cron_file 					替换客户端该用户的任务计划的文件;
minute    					分( 0-59 ,* ,*/2 );
hour      					时( 0-23 ,* ,*/2 );
day       					日( 1-31 ,* ,*/2 );
month     					月( 1-12 ,* ,*/2 );
weekday   					周( 0-6 或 1-7 ,* );
job       					任何计划执行的命令,state要等于present;
backup    					是否备份之前的任务计划;
user      					新建任务计划的用户;
state     					指定任务计划present、absent。

例如:

一分钟一次的输出yes到test.txt中

ansible testserver -m cron -a "name='cornname' minute=1 job='/sbin/echo yes >> test.txt'"

Ⅵ、user模块

# Ansible user模块主要用于操作系统用户、组、权限、密码等操作,user模块使用详解:
system          				    默认创建为普通用户,为yes则创建系统用户;
append							    添加一个新的组;
comment 						    新增描述信息;
createhome 						    给用户创建家目录;
force							    用于删除强制删除用户;
group							    创建用户主组;
groups							    将用户加入组或者附属组添加;
home							    指定用户的家目录;
name							    表示状态,是否create、remove、modify;
password						    指定用户的密码,此处为加密密码;
remove							    删除用户;
shell							    设置用户的shell登录环境;
uid								    设置用户id;
update_password 				    修改用户密码;
state           				    用户状态,默认为present表示新建用户。absent表示删除

例如,创建一个mysql用户

ansible testserver -m user -a "name=mysql home=/usr/local/mysql 
shell=/sbin/nologin"

Ⅶ、service模块

# Ansible service模块主要用于远程客户端各种服务管理,包括启动、停止、重启、重新加载等,service模块使用详解:

# 常用参数
enabled				是否开启启动服务;
name				服务名称;
runlevel			    服务启动级别;
arguments			服务命令行参数传递;
state				    服务操作状态,状态包括started, stopped, restarted, reloaded。

与yum类似

例如,组群开启nginx服务,并加入开机自启

ansible testserver -m service -a "name=nginx.service state=started enabled=yes"

Ⅷ、synchronize

# Ansible synchronize模块主要用于目录、文件同步,基于Rsync命令同步目录,Synchronize模块使用详解:

# 常用参数
compress        			    开启压缩,默认为开启;
archive         				是否采用归档模式同步,保证源和目标文件属性一致;
checksum        			    是否效验;
dirs            				以非递归的方式传输目录;
links           				同步链接文件;
recursive       				是否递归yes/no;
rsync_opts      				使用rsync 的参数;
copy_links      				同步的时候是否复制连接;
delete          				删除源中没有而目标存在的文件;
src                          源目录及文件;
dest	        				目标目录及文件;
dest_port       				目标接受的端口;
rsync_path      				服务的路径,指定 rsync 命令来在远程服务器上运行;
rsync_timeout   				指定rsync操作的IP超时时间;
set_remote_user 			    设置远程用户名;
--exclude=.log  				忽略同步.log结尾的文件;
mode            			同步的模式,rsync同步的方式PUSH、PULL,默认都是推送push。

# 将本地/tmp 目录远程同步到 docker服务器上(增量同步)
ansible docker -m synchronize  -a 'src=/tmp/ dest=/tmp/'

# 完全同步
ansible docker -m synchronize  -a 'src=/tmp/ dest=/tmp/ delete=yes'

四、ansible剧本

通过Playbook任务,能够集中管理多个任务,将多个任务关联起来,从而实现更加复杂工作,满足生产环境的各个需求,提高运维人员管理服务器效率;Playbook剧本的产物YAML文件,类似XML接口(Tomcat)文件,内部有固定语法、参数等,要掌握常用的YAML语法编写,掌握满足运维管理方向的语法即可

运行剧本命令:ansible-playbook **.yaml
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自动化运维工具Ansible基础部署与使用 的相关文章

随机推荐

  • Idea:修改新项目默认设置

    修改Idea新项目默认设置 使用idea开发时 即使在settings设置项目配置 如maven 在新建项目也会发现项目配置变为默认 这时需要设置新建项目配置 配置步骤 File New Projects Setup Settings fo
  • Log4j 配置文件(log4j.properties)的所在路径问题

    一般我们直接将log4j properties放置在src目录下 这样系统自动会找到的 其实就是放在WEB INF classes文件下 这个路径在classpath下 所以直接就能找到 我们写Logger的时候如下 public clas
  • Servlet配置、会话管理——Servlet【总结】

    Servlet配置 初始化参数 Servlet除了可以从请求信息中获取信息外 还可以从配置文件中获取配置参数信息 配置文件中的参数信息与具体的请求无关 而是Servlet初始化时调用的 如此可以避免硬编码信息 提高Servlet的可移植性
  • 创建的源文件后缀不是.c,在一些编译器上不能编译

    问题描述 源文件的名字和后缀写的比较随意 后缀不是 c 代码没有语法高亮 可能在一些编译器上不能编译通过 现象 解决办法 C语言代码中我们有约定 源文件的后缀是 c 头文件的后缀是 h 这样在大部分的IDE中代码打开都是有语法高亮的
  • 想学软件开发做程序员,学习Python必备的Python从入门到精通约650GB全面学习资料

    先简单介绍一下Python的情况 后面文章最后附有零基础自学Python从入门到精通学习Python的视频文档源码低阶到高阶等全面学习资料约650GB 1 什么是PythonPython 是一个有条理的和强大的面向对象的程序设计语言 类似于
  • 使用 Selenium 和 Python 爬取股票网站历史资金数据的简易教程

    一 需求及技术介绍 在金融投资领域 了解股票市场的历史资金数据对于制定投资策略和做出明智的决策至关重要 这些数据包含着股票的交易量 资金流向 持股比例等关键指标 能够为投资者提供有价值的参考和分析依据 通过利用 Selenium 模拟浏览器
  • Debug-CDK编译

    问题描述 make No rule to make target xxx c needed by Obj xxx o Stop 解决方法 删掉obj文件夹 重新编译
  • 【网络基础】通俗易懂的了解HTTPS的整体过程

    文章目录 前言 HTTP 各个版本 结构 请求 请求行 请求头 请求体 响应 响应行 响应头 响应体 HTTPS 对称加密 非对称加密 对称和非对称结合加密 CA证书中级大发 证书 对称和非对称结合加密 证书关系链 拓展知识 证书的合法性验
  • STM32的常规芯片容量大小以及 大、小容量STM32芯片之间的差别?

    本文主要讨论STM32的常规芯片容量大小以及 STM32芯片大 小容量之间的差别 STM32大容量芯片是包括高达512K字节的闪存和64K字节的SRAM的芯片为大容量 STM32小容量芯片具体容量见下表 STM32F103xC STM32F
  • nginx+tomcat集群+https

    nginx tomcat集群 一 nginx安装 1 安装nginx需要的依赖包 yum y install gcc zlib zlib devel pcre devel openssl openssl devel 2 下载nginx安装包
  • (附源码)ssm考试题库管理系统 毕业设计 069043

    SSM考试题库管理系统 摘 要 随着计算机办公自动化程度的不断提高 开发各种数据库管理应用软件用于各种工作中能有效地提高工作效率 节省时间 能使学校的教学工作上一个新的台阶 传统的人工命题形成试卷 往往会出现大量的重复劳动 并且形成的试卷因
  • FTP局域网内文件共享

    FTP局域网内文件共享 由于最近公司电脑主机不让插U盘拷贝数据 所以导致在打包软件进行上机测试的时候需要使用聊天软件来进行传输 相对比较麻烦 所以决定使用FTP在局域网内来进行文件的共享 记录一下 一起学习吧 操作步骤目录 共享文件夹设置
  • c++ 内存管理一:初识内存分配工具

    文章目录 前言 1 new 和 delete 2 new 和delete 3 operator new 4 placement new 5 malloc和free 6 allocator 前言 侯捷 c 内存管理学习总结笔记 在C 中 有几
  • win服务器文件复制命令,用命令形式从Windows系统拷贝文件到Linux

    1 将本机文件复制到远程服务器上 scp home administrator news txt root 192 168 6 129 etc squid home administrator 本地文件的绝对路径 news txt 要复制到
  • 452. 用最少数量的箭引爆气球

    452 用最少数量的箭引爆气球 在二维空间中有许多球形的气球 对于每个气球 提供的输入是水平方向上 气球直径的开始和结束坐标 由于它是水平的 所以纵坐标并不重要 因此只要知道开始和结束的横坐标就足够了 开始坐标总是小于结束坐标 一支弓箭可以
  • 自动控制原理实验二 二阶系统阶跃响应

    实验源码已经上传CSDN了 需要的可直接下载 链接 https download csdn net download weixin 53129688 87694703 实验内容 其中 z 和wn对系统的动态品质有决定的影响 z为阻尼比 由于
  • 电子书 杜春雷 ARM体系结构与编程

    https pan baidu com s 1AYpTxklTRXCpqGV6hD3UzQ 提取码 j7ku
  • IO流概念与open函数操作

    IO流 input output stream 存储设备 磁盘 rom 能永久保存 读取写入速度慢 内存 ram 读取速度快 不能永久保存 断电就没了 贵 狭义 CPU运算 暂时写入内存 没读满就不存进去 见file 再存入磁盘保存 广义
  • STM32的RTC使用

    STM32的RTC使用 初始化RTC 设置时间保存时间 获取实时时间 RTC后备区另类使用 初始化RTC define RTC SET CONFIG FLAG 0x6066 lt RTC设置完成标志 判断是否第一次配置 if HAL RTC
  • 自动化运维工具Ansible基础部署与使用

    目录 一 安装部署 二 配置 Ansible最基础的模块为ping模块 主要用于判断远程客户端是否在线 用于ping本身服务器 返回值为changed ping 三 ansible批量管理 shell模块 copy模块 yum模块 file