ansible基本模块

 

ansible-doc  -l    #列出所有模块

ansible-doc shell                    # 查看shell模块的帮助

 

command(命令模块,默认)

[root@L yum.repos.d]# ansible all -m command -a 'ls /root'

 

shell (最常用)

 

[root@ansible .ssh]# ansible cache -m shell -a 'chdir=/tmp touch f1'                       # 切换到/tmp下创建文件

 

 

lineinfile(类似于sed)

 

[root@ansible .ssh]# ansible all -m lineinfile -a 'path=/etc/resolv.conf regexp="^search:" line="search tedu.cn"'


# path : 要修改的行
# regexp : 正则,匹配要修改的行
# line : 修改后的样子

 

 

replace

[root@ansible .ssh]# ansible all -m replace -a 'path=/etc/resolv.conf regexp="\.cn" replace=".com"'

# regexp: 匹配要修改的部分
# replace : 修改后的样子


[root@ansible .ssh]# ansible all -m replace -a 'path=/etc/resolv.conf regexp="^(search).*" replace="\1 .com"' 

 

script(执行脚本)

cron

hostname

user

group

copy:从服务器复制文件到客户端

[root@L shells]# ansible all -m copy -a "src=heart.sh dest=/root"
[root@L shells]# ansible all -m copy -a "content='i am ansible\n' dest='/root/test'"         # 将content写入文件,文件存在覆盖,不存在则新建

fetch:将客户机的文件拷贝到本机器

[root@L ~]# ansible all -m fetch  -a 'src=/var/log/messages dest=/mnt'

file:指定文件属性

[root@L ~]# ansible all -m file -a 'path=/mnt/test state=touch'             # 创建文档   state=absent 删除
[root@L ~]# ansible all -m file -a 'path=/mnt/dir state=directory'          # 创建目录
[root@L ~]# ansible 192.168.2.100 -m file -a 'src=/usr/local/tomcat/bin/startup.sh dest=/sbin/cat_start state=link'    # 创建软链接

 

yum:

[root@L ~]# ansible all -m yum -a 'name=vsftpd,httpd'                             # 为所有客户机安装软件   state=remove 卸载    update_cache=yes 更新缓存
[root@L ~]# ansible 192.168.2.100 -m yum -a 'list=installed'                # 查看客户机安装的软件列表    

 

[root@ansible .ssh]# ansible db -m replace -a 'path=/etc/my.cnf regexp="^(\[mysqld\])" replace="\1\nlog-bin"'

 

 

 

service:

[root@L shells]# ansible all -m service -a 'name=mariadb state=restarted'
[root@L shells]# ansible all -m service -a 'name=mariadb state=started enabled=yes'

 

unarchive模块

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

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

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

 

参数:

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

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

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

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

转载于:https://www.cnblogs.com/ray-mmss/p/10169517.html

<think>好的,我现在需要帮用户了解Ansible模块列表和具体用法。首先,用户的问题是关于Ansible模块的文档和使用方法,所以我得先回忆一下Ansible的相关知识,并结合提供的引用内容来组织答案。 根据用户提供的引用,特别是引用[3],里面提到了使用ansible-doc命令来查看模块列表和具体模块的说明。比如,ansible-doc -l可以列出所有模块ansible-doc yum可以查看yum模块的示例。我需要把这些命令详细地告诉用户,确保他们知道如何查询模块。 另外,引用[5]提到了service模块的使用示例,引用[4]提到了file模块创建软链接的例子。这些具体的例子对用户来说应该很有帮助,可以让他们更好地理解如何在实际中使用这些模块。我需要将这些例子整理出来,分门别类地介绍常用模块及其用途。 用户可能不仅想知道如何查看模块,还想知道有哪些常用模块以及它们的基本用法。所以,我需要将模块分类,比如系统管理、软件包管理、文件操作等,并给出每个类别下的几个典型模块,比如service、yum、copy、file等。每个模块需要简要说明功能,并附上示例代码,这些示例可以从引用中找到或者根据经验补充。 另外,用户的问题可能隐含了如何高效使用模块文档的需求。所以,我应该提供一些使用ansible-doc的技巧,比如如何查找模块,如何查看示例等,这些信息在引用[3]中有提到,需要整理出来。 还需要注意引用中的例子是否正确,比如引用[4]中的创建软链接的命令是否正确。检查后发现,file模块创建软链接的参数应该是src和path,而不是dest,所以可能需要纠正这个错误,或者在回答时给出正确的语法,避免用户被误导。 最后,生成相关问题,考虑用户可能的后续疑问,比如如何自定义模块模块参数的使用技巧、模块的执行过程,以及如何调试模块等。这些问题可以帮助用户进一步深入学习。 总结步骤: 1. 介绍查看所有模块列表的方法。 2. 说明如何查看具体模块的文档和示例。 3. 分类列举常用模块及其示例。 4. 纠正引用中的错误示例。 5. 生成相关问题。</think>### Ansible模块文档及使用方法 #### 一、查看模块列表与文档 1. **列出所有模块** 使用命令`ansible-doc -l`可查看Ansible所有可用模块的列表,当前版本包含约2834个模块[^3]。 ```bash ansible-doc -l ``` 2. **筛选特定模块** 通过管道符`grep`过滤模块名,例如查找与`yum`相关的模块[^3]: ```bash ansible-doc -l | grep yum ``` 3. **查看模块详细说明** 使用`ansible-doc <模块名>`查看具体模块的参数、示例和说明。例如查看`yum`模块文档[^3]: ```bash ansible-doc yum ``` --- #### 二、常用模块分类与示例 ##### 1. 系统服务管理(`service`模块) - **功能**:管理系统服务(启动/停止/重启)。 - **示例**:启动`httpd`服务[^5]: ```bash ansible node-servers -m service -a "name=httpd state=started" ``` ##### 2. 软件包管理(`yum`模块) - **功能**:通过YUM安装/卸载软件包。 - **示例**:安装`nginx`: ```bash ansible web-servers -m yum -a "name=nginx state=present" ``` ##### 3. 文件操作(`file`模块) - **功能**:管理文件/目录权限、创建软链接。 - **示例**:创建软链接(注意参数应为`src`和`path`)[^4]: ```bash ansible dev -m file -a "src=/var/www/html path=/www state=link" ``` ##### 4. 文件传输(`copy`模块) - **功能**:复制本地文件到远程主机。 - **示例**:上传配置文件: ```bash ansible servers -m copy -a "src=/etc/nginx.conf dest=/etc/nginx/nginx.conf" ``` --- #### 三、模块使用建议 1. **优先使用官方文档**:通过`ansible-doc`查看模块的最新参数和示例。 2. **参数验证**:执行任务前可使用`--check`模拟运行,避免误操作。 3. **模块幂等性**:大多数模块支持幂等操作(多次执行结果一致),无需额外判断状态。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值