首页 > 其他分享 >ansible常用模块

ansible常用模块

时间:2024-08-01 10:18:24浏览次数:10  
标签:文件 常用 dest state ansible 模块 test 添加

ansible常见模块

setup

# 收集远程主机的Facts(每个被管理节点在接收运行管理命令之前,会将自己主机相关信息,如操作系统,IP等信息传递给ansible主机)
filter: 用于进行条件过滤,如果设置,仅返回匹配过滤条件的信息
ansible hosts1 -m setup
ansible hosts1 -m setup -a "filter=ansible_all_ipv4_addresses"

command

# 命令模块,用于在远程主机执行命令(缺陷:执行命令不能使用变量和参数)
例:在inventory文件中的所有主机中执行date命令,-m默认不指定时就是使用command模块
ansible all -m command -a "date"

cron

# 定时任务模块 
        state值:   present(添加)   absent(移除)
        例: 使用ansible 添加任务计划 */10 * * * * /bin/echo hello    
        添加:
        ansible all -m cron -a 'minute="*/10" job="/bin/echo hello" name="test job" state=present'
        检查:
        ansible all -a 'crontab -l'
        移除:
        ansible all -m cron -a 'minute="*/10" job="/bin/echo hello" name="test job" state=absent'

user

#  用户操作模块
name: 指定用户名
uid: 指定uid号
group: 指定组

添加用户
        ansible all -m user -a 'name="user1" state=present'

删除用户
        ansible all -m user -a 'name="user1" state=absent'

group

添加用户组
        ansible all -m group -a 'name="mysql" gid=306 system=yes'

copy

src= :定义本地源文件
dest=:定义目标路劲(绝对路劲)
content= :取代src=,表示用指定的内容生成为目标文件的内容,不能与src同时使用
owner: 文件属主
group: 文件属组
mode:  文件权限
backup: 是否备份
拷贝本地的/etc/fstab 到远程的 /tmp 下权限为640 属主为root
        ansible all -m copy -a 'src=/etc/fstab /dest=/tmp/fstab.ansible owner=root mode=640'

拷贝内容为“hello longge”到远程主机
        ansible all -m copy -a 'content="hello longge" dest=/tmp/test.ansible'

file

# file 模块可以帮助我们完成一些对文件的基本操作。比如,创建文件或目录、删除文件或目录、修改文件权限等
path: 必须参数,指定要操作的文件或目录
state:  directory目录  touch文件   link软链接  hard硬链接  absent删除
src:   创建链接时需要指定的源
force: 强制
owner: 文件属主
group:  文件属组
mode:   文件权限
recurse: 目录时递归修改文件属性

ping

# 测试连通性
ansible all -m ping

service:

# 服务管理
state: started   stopped   reloaded  restarted
enabled:  是否开机自启
ansible all -m service -a 'enabled=true name=httpd state=started'

shell

与command类似,但是可以执行带管道和变量的命令,同样无法做到运行多次结果一致

script

# 本地脚本在远程主机执行
chdir参数 : 此参数的作用就是指定一个远程主机中的目录,在执行对应的脚本之前,会先进入到 chdir 参数指定的目录中。
creates参数 :使用此参数指定一个远程主机中的文件,当指定的文件存在时,就不执行对应脚本,可参考 command 模块中的解释。
removes参数 :使用此参数指定一个远程主机中的文件,当指定的文件不存在时,就不执行对应脚本

ansible all -m script -a 'chdir=/opt /tmp/test.sh'

yum

# 软件包管理
state值:   present(安装)   absent(移除)
安装软件包
        ansible all -m yum -a 'name=nginx'
卸载
        ansible all -m yum -a 'name=nginx state=absent'

lineinfile

# 文件内容修改,在某行前面添加一行,在某行后面添加一行,删除某一行、末尾加入一行、替换或添加某一行
path:     文件路径
regexp:  正则匹配,如'^127\.0\.0\.1','^Listen ','^# port for http'
line:     需要更换成的行或者添加的行
insertbefore:  正则匹配该行并在改行前面添加一行,如'^www.*80/tcp','^#Listen ','aa(.*)'
insertafter:    正则匹配该行并在改行后面添加一行
state:          absent删除     present添加  
例:
bbb修改为bbbbbb

ansible all -m lineinfile -a "dest=/root/test.txt regexp='bbb' line='bbbbbbb'"

2.2 在某一行前面插入一行
ansible all -m lineinfile -a "dest=/root/test.txt insertbefore='aa(.*)' line='eeee'"

2.3 在某一行后面插入一行
ansible all -m lineinfile -a "dest=/root/test.txt insertafter='aa(.*)' line='eeee'"

2.4 删除某一行
ansible all -m lineinfile -a "dest=/root/test.txt regexp='aa(.*)' state=absent"

2.5 末尾加入一行
ansible all -m lineinfile -a "dest=/root/test.txt line='hehe'"

2.6 替换或添加某一行
ansible all -m lineinfile -a "dest=/root/test.txt regexp='he(.*)' line='lllll' state=present"

replace

#  模块可以根据我们指定的正则表达式替换匹配到的字符串,文件中所有被匹配到的字符串都会被替换,和lineinfile不同的地方是replace只会替换正则表达式匹配到的内容,而lineinfile是替换正则表达式匹配到行的内容。

path: /etc/hosts
after: '开始位置'
before: '结束位置'
regexp: '匹配内容'
replace: '替换内容'

#匹配某行前加入注释
ansible host01 -m replace -a "path=/etc/fstab regexp='^10.1.2.254(.*)' replace='# 10.1.2.254\1' backup=yes"

# 匹配到行后,在本行添加aaa内容
ansible 192.168.1.1 -m replace -a "path=/etc/ssh/sshd_config regexp='^allowusers(.*)' replace='allowusers\1 aaa' backup=yes"

# 删除行中的test01
ansible host02 -m replace -a "dest=/etc/ssh/sshd_config regexp='test01' replace=''"

标签:文件,常用,dest,state,ansible,模块,test,添加
From: https://www.cnblogs.com/kkit/p/18336095

相关文章

  • Windows系统常用端口详解
    135端口135主要用于Microsoft的远程过程调用(RPC)服务。RPCSS(RemoteProcedureCallSubsystem)服务是COM和DCOM服务器的服务控制管理器。它执行COM和DCOM服务器的对象激活请求、对象导出程序解析和分布式垃圾回收。如果此服务被停用或禁用,则使用COM或DCOM的程序将无......
  • 【并发】ThreadLocal常用场景
    ThreadLocal经常被用到,尤其是在以下场景中:数据库连接管理:每个线程使用自己的数据库连接,以避免连接被多个线程同时使用而导致的并发问题。可以在多线程环境下确保每个线程使用的数据库连接是独立的,避免了连接池中的连接被多个线程共享的风险。会话管理:每个线程都有自......
  • 14. 迭代器、生成器、模块与包、json模块
    1.迭代器1.1迭代器介绍迭代器是用来迭代取值的工具每一次迭代得到的结果会作为下一次迭代的初始值,单纯的重复并不是迭代#while循环实现迭代取值a=[1,2,3,4,5,6]index=0whileindex<len(a):print(a[index])index+=1 1.2可迭代对象内置有_......
  • docker常用的使用方法
    docker如何退出进入的容器?要退出Docker容器的shell环境可以按以下步骤操作:在容器shell状态下,按下键盘上的Ctrl和P键。2然后按下Ctrl和Q键。这将使您退出容器的shell环境,但不会停止容器的运行。您将返回到宿主机的shell终端,而容器将继续在后台运行。如果......
  • Python操作excel常用操作介绍,入门首选
            使用Python操作Excel文件有许多常用操作。以下是一些常见的操作及其简要描述,下面是全面详细的示例,展示如何使用Python操作Excel文件,我们将使用pandas和openpyxl库来进行各种操作。常用库pandas:用于数据分析和处理,支持读取和写入Excel文件。openpyxl:用于读......
  • [米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-25 ADC模块FEP-DAQ9248采集显示波形方案
    软件版本:Anlogic-TD5.9.1-DR1_ES1.1操作系统:WIN1064bit硬件平台:适用安路(Anlogic)FPGA实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板板卡获取平台:https://milianke.tmall.com/登录"米联客"FPGA社区http://www.uisrc.com视频课程、答疑解惑! 1概述本方案通过把DAQ9......
  • Ansible内置模块之file
    RHCE9.0 (点击查看课程介绍) 上课课时:72课时/12天+考试辅导1-2天开班频率:2个月开一期最新新班:7月27日周末班上课方式:面授/直播;提供随堂录播ansible.builtin.file模块用于管理文件和目录的属性。可以创建、删除文件或目录,修改文件权限、所有者等属性。01 选......
  • Python:使用默认模块在python中读取excel
    我有Python2.6.6版本,但无法安装pandas、xlrd、xlwt等新模块。我想使用Python读取Excel。是否可以使用Python中存在的默认模块读取Excel。抱歉,不能使用Python2.6.6的默认模块读取Excel文件。Python没有内置的功能来处理Excel文件。使用外部库(如提......
  • Linux常用指令
    文章目录1.开关机与登陆注销关机&重启命令用户登录和注销2.指定运行级别运行级别说明init切换运行级别systemctlset-default设置默认运行级别3.帮助指令man获得帮助信息help获得shell内置命令的帮助信息4.文件目录pwd(printworkingdirectory)ls查看当前目录......
  • 继电器模块详解
    继电器,一种常见的电控制装置,其应用几乎无处不在。在家庭生活,继电器被广泛应用于照明系统、电视机、空调等电器设备的控制;在工业领域,它们用于控制电机、泵站、生产线等高功率设备的运行;继电器还在通信网络、交通系统以及医疗设备中发挥着重要作用。不仅如此,继电器也是学习其他电子......