ansible常用模块总结

目录

一、 assert模块

二、 authorized_key模块

三、at模块

四、blockinfile模块

五、command模块

六、copy模块

七、 cron模块

八、 firewalld模块

九、 fail模块

十、 file模块

十一、 fetch模块

十二、filesystem模块

十三、 get_url模块

十四、group模块

十五、known_hosts模块

十六、lineinfile模块

十七、lvg模块

十八、lvol模块

十九、mount模块

二十、nmcli模块 

二十一、ping模块

二十二、package_facts模块

二十三、parted模块 

二十四、register模块和debug模块

二十五、reboot模块

二十六、setup模块

二十七、shell模块

二十八、sefcontext模块

二十九、stat模块

三十、synchronize模块

三十一、script模块

三十二、systemd模块

三十三、template模块

三十四、user模块

三十五、uri模块

三十六、yum模块和service模块

三十七、yum_repository模块

三十八、 常用模块汇总:


环境信息:

 

查看所有模块: 

 ansible-doc -l

 

查看具体模块:

ansible-doc setup


查看具体模块的示例输出:

ansible-doc -s setup

=========================================================================

一、 assert模块

Ansible assert模块用于在任务执行期间对变量或表达式进行断言。如果断言失败,则任务将失败并停止执行。它可以用于确保在任务执行期间满足某些条件,以避免出现意外的结果。

assert模块的语法如下:
- name: Ensure that a variable is set to a specific value
  assert:
    that:
      - variable_name == expected_value
其中,that参数是一个列表,包含要断言的变量或表达式。如果列表中的任何一个断言失败,则任务将失败。

除了基本的相等性检查之外,assert模块还支持其他比较运算符,如大于、小于、包含等。它还可以用于检查变量是否存在、是否为真或是否为假等。

例如,以下示例使用assert模块检查变量my_var是否为字符串类型:

- name: Ensure that a variable is a string
  assert:
    that:
      - my_var is string
如果my_var不是字符串类型,则任务将失败。


二、 authorized_key模块

authorized_key模块是Ansible中用于管理SSH授权密钥的模块。它可以将公钥添加到远程主机的授权密钥列表中,也可以从远程主机的授权密钥列表中删除公钥。

以下是一些常见的用法:
添加公钥到远程主机的授权密钥列表中:
- name: Add SSH key to authorized_keys
  authorized_key:
    user: username
    key: "{{ lookup('file', '/path/to/public/key') }}"
从远程主机的授权密钥列表中删除公钥:
- name: Remove SSH key from authorized_keys
  authorized_key:
    user: username
    key: "{{ lookup('file', '/path/to/public/key') }}"
    state: absent
从远程主机的授权密钥列表中删除所有公钥:
- name: Remove all SSH keys from authorized_keys
  authorized_key:
    user: username
    state: absent
注意:在使用authorized_key模块之前,需要确保远程主机上已经安装了SSH服务,并且已经启用了SSH密钥认证。


三、at模块


四、blockinfile模块

ansible blockinfile模块用于在文件中添加或修改一个块(block)的内容。它可以在文件中查找一个特定的标记(marker),然后在该标记之前或之后添加或修改一个块的内容。

该模块的常用参数包括:

path:要修改的文件路径。
block:要添加或修改的块的内容。
marker:标记,用于定位要修改的块的位置。
state:状态,可选值为present(添加或修改)或absent(删除)。
例如,以下是一个使用blockinfile模块添加一个块的示例:

- name: Add a block to a file
  blockinfile:
    path: /etc/nginx/nginx.conf
    block: |
      server {
          listen 80;
          server_name example.com;
          location / {
              proxy_pass http://localhost:8000;
          }
      }
    marker: "# BEGIN NGINX BLOCK"
    state: present
这个任务会在/etc/nginx/nginx.conf文件中查找标记# BEGIN NGINX BLOCK,如果找到了该标记,则在该标记之前添加一个块。如果没有找到该标记,则在文件末尾添加该块。


五、command模块

临时命令:

ansible all -m command -a 'tail /etc/passwd' -i inventory 

模块内容: 

Ansible command 模块是用于在远程主机上执行命令的模块。它可以在远程主机上执行任何命令,就像在本地终端上一样。使用 Ansible command 模块可以轻松地在远程主机上执行命令,而无需在远程主机上安装任何额外的软件。


六、copy模块

临时命令:

ansible all -m copy -a 'content="this server is managed by ansible\n" dest=/etc/motd' --become

 模块内容:

Ansible的copy模块用于将文件或目录从控制节点复制到远程主机。它可以复制本地文件到远程主机,也可以复制远程主机上的文件到本地。

copy模块的基本语法如下:

- name: Copy file from local to remote
  copy:
    src: /path/to/local/file
    dest: /path/to/remote/file
    owner: user
    group: group
    mode: 0644
其中,src表示源文件路径,dest表示目标文件路径。owner、group和mode是可选参数,用于设置文件的所有者、组和权限。

如果要复制目录,可以使用递归选项:

- name: Copy directory from local to remote
  copy:
    src: /path/to/local/directory/
    dest: /path/to/remote/directory/
    owner: user
    group: group
    mode: 0755
    recurse: yes
在复制文件或目录之前,Ansible会检查目标文件是否存在。如果存在,它会根据md5校验和检查文件是否相同。如果不同,Ansible会覆盖目标文件。如果相同,Ansible会跳过复制操作。

ansible copy模块常用参数:
src:指定源文件路径,可以是绝对路径或相对路径。
dest:指定目标文件路径,可以是绝对路径或相对路径。
backup:指定备份文件路径,可以是绝对路径或相对路径。
force:如果目标文件已经存在,是否强制覆盖。
mode:指定目标文件的权限模式,可以是数字或字符串形式。
owner:指定目标文件的所有者。
group:指定目标文件的所属组。
validate:指定一个命令或脚本,用于验证复制的文件是否正确。
content:指定要复制的文件内容,可以是字符串或文件路径。
remote_src:如果源文件在远程主机上,是否使用远程主机上的文件进行复制。
follow:如果源文件是符号链接,是否跟随符号链接进行复制。
selevel:指定目标文件的安全级别。
serole:指定目标文件的安全角色。
setype:指定目标文件的安全类型。
seuser:指定目标文件的安全用户。


七、 cron模块


八、 firewalld模块

运行playbook:

ansible-playbook  site.yml

 

模块内容:

Ansible的firewalld模块用于管理firewalld防火墙。以下是一些常用的参数:

state:指定防火墙状态,可以是enabled、disabled或permissive。
immediate:如果设置为yes,则立即应用更改,否则需要重启firewalld服务才能生效。
service:指定要打开或关闭的服务。
port:指定要打开或关闭的端口。
rich_rule:指定要添加或删除的复杂规则


九、 fail模块

用于强制任务失败。


十、 file模块

使用file模块处理受管主机上的文件。其工作方式与touch命令类似,如果不存在则创建一个空文件,如果存在,则更新其修改时间。在本例中,除了处理文件之外,Ansible还确保将文件的拥有用户、组和权限设置为特定值。

ansible file模块常用参数如下:

path:指定文件或目录的路径。
state:指定文件或目录的状态,可选值为file、directory、link、hard、absent,默认为file。
mode:指定文件或目录的权限,可以使用数字或字符串表示,如0644或u=rw,g=r,o=r。
owner:指定文件或目录的所有者。
group:指定文件或目录的所属组。
src:指定源文件的路径,用于创建符号链接。
dest:指定符号链接的目标路径。
recurse:指定是否递归处理目录,默认为no。
force:指定是否强制覆盖已存在的文件或目录,默认为no。
backup:指定是否备份已存在的文件或目录,默认为no。
follow:指定是否跟随符号链接,默认为yes。
selevel:指定SELinux安全级别。
serole:指定SELinux安全角色。
setype:指定SELinux安全类型。
seuser:指定SELinux安全用户。 


十一、 fetch模块

ansible fetch模块用于从远程主机上获取文件,将其复制到本地主机上。

常用参数:

src:远程主机上的文件路径。
dest:本地主机上的目标路径。
flat:是否将文件复制到目标路径的根目录下,而不是保留原有的目录结构。
validate:用于验证文件的哈希值,可选值为md5、sha1、sha224、sha256、sha384、sha512,默认为md5。


十二、filesystem模块


十三、 get_url模块

playbook示例:

 

模块内容:

get_url模块是Ansible中用于从远程URL下载文件的模块。它可以从HTTP、HTTPS、FTP等协议下载文件,并支持基本身份验证和代理服务器。

常用参数:

url:要下载的文件的URL。
dest:下载文件的目标路径。
url_username:用于身份验证的用户名。
url_password:用于身份验证的密码。
force:如果目标文件已经存在,则强制重新下载。
timeout:下载超时时间。
validate_certs:是否验证SSL证书。
proxy_host:代理服务器的主机名。
proxy_port:代理服务器的端口号。
headers:HTTP请求头。


十四、group模块

Ansible的group模块用于管理Linux系统中的用户组。它可以用来创建、修改和删除用户组,以及添加和删除用户组中的用户。

以下是group模块的一些常用参数:

name:指定用户组的名称。
gid:指定用户组的GID。
state:指定用户组的状态,可以是present(存在)、absent(不存在)或者hidden(隐藏)。
system:指定用户组是否为系统用户组。
append:指定是否将用户添加到用户组中。


下面是一个使用group模块创建用户组的例子:
- name: Create a new group
  group:
    name: mygroup
    state: present
这个例子将创建一个名为“mygroup”的用户组。如果该用户组已经存在,则不会进行任何操作。如果该用户组不存在,则会创建该用户组。

下面是一个使用group模块添加用户到用户组的例子:
- name: Add a user to a group
  group:
    name: mygroup
    state: present
    append: yes
    members: myuser
这个例子将把名为“myuser”的用户添加到名为“mygroup”的用户组中。如果该用户组不存在,则会创建该用户组。如果该用户组已经存在,则会将该用户添加到该用户组中。


十五、known_hosts模块

Ansible known_hosts模块用于管理SSH主机的known_hosts文件。该模块可以添加、删除或验证主机的公钥是否存在于known_hosts文件中。

以下是一些常见的用法:
添加主机公钥到known_hosts文件中:
- name: Add host key to known_hosts
  known_hosts:
    name: example.com
    key: "{{ lookup('file', '/path/to/public/key') }}"
删除主机公钥:
- name: Remove host key from known_hosts
  known_hosts:
    name: example.com
    state: absent
验证主机公钥是否存在于known_hosts文件中:
- name: Verify host key in known_hosts
  known_hosts:
    name: example.com
    key: "{{ lookup('file', '/path/to/public/key') }}"
    state: present
注意:known_hosts模块默认使用当前用户的known_hosts文件,如果需要使用其他用户的文件,可以使用remote_user参数指定。


十六、lineinfile模块

ansible lineinfile模块用于在文件中查找指定的行,并对其进行修改、添加或删除操作。

常用参数:

path:指定要操作的文件路径。
regexp:指定要查找的正则表达式。
line:指定要添加或修改的行内容。
state:指定要执行的操作,可选值为present(添加或修改)、absent(删除)。
backup:指定是否备份原文件,可选值为yes或no,默认为yes。
示例:

在/etc/hosts文件中添加一行记录:

- name: Add a line to /etc/hosts
  lineinfile:
    path: /etc/hosts
    line: "192.168.1.100   host1.example.com"
    state: present
在/etc/hosts文件中删除一行记录:

- name: Remove a line from /etc/hosts
  lineinfile:
    path: /etc/hosts
    regexp: "^192.168.1.100.*"
    state: absent


十七、lvg模块

Ansible的lvg模块用于管理Linux系统上的逻辑卷组(LVM)。它可以用于创建、删除、扩展和缩小逻辑卷组。

 


十八、lvol模块


十九、mount模块 

ansible 2.12.2好像没有内置mount模块,可以用shell模块进行挂载。 


二十、nmcli模块 


二十一、ping模块

临时命令:

ansible all -m ping -i inventory

模块内容:

ansible的ping模块用于测试主机是否可达的模块。它会向目标主机发送一个ping请求,如果目标主机能够响应,则返回pong,表示主机可达。

使用ping模块可以快速测试主机的连通性,以确保在执行其他任务之前,主机之间的网络连接是正常的。


二十二、package_facts模块

Ansible的package_facts模块是一个用于收集有关系统上已安装软件包的信息的模块。它可以收集有关软件包名称、版本、安装状态和依赖关系等方面的信息,并将其存储在Ansible变量中,以便在后续任务中使用。
使用package_facts模块可以方便地了解系统上已安装软件包的情况,从而更好地管理和维护系统。例如,可以使用它来检查系统上是否安装了特定的软件包,并根据需要执行安装或升级操作。

 以下是一个使用package_facts模块的示例:
- name: Collect package facts
  package_facts:
    manager: apt

- name: Check if package is installed
  debug:
    msg: "Package is installed"
  when: "'package-name' in ansible_facts.packages


二十三、parted模块 


二十四、register模块和debug模块

playbook示例:

register模块内容:

Ansible的register模块用于将任务执行的结果保存到变量中,以便后续任务使用。register模块可以将任务执行的结果保存到变量中,这些结果可以是命令输出、文件内容、任务状态等等。

debug模块内容:

Ansible的debug模块用于在playbook执行期间打印调试信息。它可以打印变量、模块输出、任务状态等信息,帮助我们更好地理解playbook的执行过程。


二十五、reboot模块

Ansible的reboot模块用于在远程主机上执行重启操作。它可以在执行其他任务之前或之后重启主机。

常用参数:
msg:重启时显示的消息,默认为“Reboot initiated by Ansible”。
pre_reboot_delay:重启前的延迟时间,单位为秒,默认为0。
post_reboot_delay:重启后的延迟时间,单位为秒,默认为0。
test_command:用于测试是否需要重启的命令,默认为“/usr/sbin/shutdown -r -F now”。
connect_timeout:连接超时时间,单位为秒,默认为10。
reboot_timeout:重启超时时间,单位为秒,默认为600。
示例:

yaml
- name: Reboot the server
  reboot:
    msg: "Reboot initiated by Ansible"
    pre_reboot_delay: 30
    post_reboot_delay: 60
    test_command: "/usr/sbin/shutdown -r -F now"
    connect_timeout: 20
    reboot_timeout: 300
这个示例将在远程主机上执行重启操作,并在重启前等待30秒,在重启后等待60秒。它将使用/usr/sbin/shutdown -r -F now命令测试是否需要重启,并在连接超时时间为20秒,重启超时时间为300秒。


二十六、setup模块

临时命令:

ansible localhost -m setup  | grep ansible_python_version

模块内容:

Ansible的setup模块是一个特殊的模块,它可以收集有关远程主机的各种信息,并将其存储在Ansible变量中。这些变量可以在后续任务中使用,以便更好地管理和配置远程主机。

setup模块可以收集的信息包括:

系统信息,如操作系统类型、版本、主机名、内核版本等。

硬件信息,如CPU型号、内存大小、磁盘容量等。

网络信息,如IP地址、MAC地址、网卡信息等。

软件信息,如已安装的软件包、服务状态等。

使用setup模块可以方便地了解远程主机的状态和配置,从而更好地管理和维护它们。


二十七、shell模块

临时命令:

模块内容:

ansible shell模块用于在远程主机上执行命令,与command模块类似,但是可以使用shell语法。它不同于command模块的地方在于,它可以使用管道、重定向和其他shell特性。需要注意的是,由于shell模块可以使用shell语法,因此在编写命令时需要特别小心,以避免潜在的安全问题。

command模块和shell模块的区别:

Ansible中的command和shell模块都可以用于在远程主机上执行命令,但它们之间有一些区别:

command模块只能执行简单的命令,而shell模块可以执行复杂的命令,包括管道、重定向和变量替换等。

command模块不会启动一个shell,而shell模块会启动一个shell来执行命令。

command模块返回命令的退出状态码,而shell模块返回命令的标准输出和标准错误输出。

因此,如果要执行简单的命令,建议使用command模块;如果要执行复杂的命令,建议使用shell模块。


二十八、sefcontext模块

ansible sefcontext模块用于管理SELinux文件上下文。它可以用于添加、修改和删除文件上下文规则。

 
常用参数:

path:指定文件或目录的路径。
setype:指定文件或目录的SELinux类型。
serange:指定文件或目录的SELinux范围。
seuser:指定文件或目录的SELinux用户。
state:指定文件或目录的SELinux状态,可以是present(存在)、absent(不存在)或reset(重置)。


二十九、stat模块

Ansible的stat模块用于获取文件或目录的状态信息,例如文件的大小、权限、所有者、修改时间等。它可以用于检查文件或目录是否存在、是否具有特定的权限等。

使用示例:

检查文件是否存在:
- name: Check if file exists
  stat:
    path: /path/to/file
  register: file_stat

- name: Print file size
  debug:
    var: file_stat.stat.size
检查目录是否存在:
- name: Check if directory exists
  stat:
    path: /path/to/directory
  register: dir_stat

- name: Print directory owner
  debug:
    var: dir_stat.stat.uid
检查文件是否具有特定的权限:
- name: Check file permissions
  stat:
    path: /path/to/file
  register: file_stat

- name: Print file permissions
  debug:
    var: file_stat.stat.mode
检查文件是否是软链接:
- name: Check if file is a symlink
  stat:
    path: /path/to/file
  register: file_stat

- name: Print symlink target
  debug:
    var: file_stat.stat.link_target
注意事项:

stat模块返回的状态信息可以通过register关键字保存到变量中,以便后续使用。
stat模块支持的参数包括path、follow、get_checksum、get_md5、get_mime、get_attributes等,具体用法可以参考官方文档。


三十、synchronize模块

Ansible的synchronize模块用于将本地文件或目录与远程主机上的文件或目录同步。它使用rsync协议进行同步,可以在本地和远程主机之间复制文件和目录,并确保它们保持同步。

synchronize模块的语法如下:

- name: Synchronize local directory with remote directory
  synchronize:
    src: /path/to/local/directory
    dest: /path/to/remote/directory
其中,src指定本地目录的路径,dest指定远程主机上的目录路径。除此之外,还可以使用其他选项来控制同步行为,例如:

mode:指定同步模式,可以是pull(从远程主机拉取文件)或push(将本地文件推送到远程主机)。
compress:指定是否启用压缩传输。
delete:指定是否删除目标目录中不存在于源目录中的文件。
rsync_opts:指定传递给rsync命令的其他选项。
例如,以下示例将本地目录/path/to/local/directory同步到远程主机上的/path/to/remote/directory目录,并启用压缩传输和删除目标目录中不存在于源目录中的文件:

- name: Synchronize local directory with remote directory
  synchronize:
    src: /path/to/local/directory
    dest: /path/to/remote/directory
    mode: push
    compress: yes
    delete: yes
需要注意的是,synchronize模块需要在远程主机上安装rsync命令。如果远程主机上没有安装rsync,则需要使用raw模块或其他方法来安装它。


三十一、script模块

Ansible的script模块允许在远程主机上执行本地脚本。它可以用于在远程主机上执行任何可执行文件,包括bash脚本、Python脚本、Perl脚本等。使用script模块时,需要将本地脚本文件复制到远程主机上,并在远程主机上执行该脚本。它可以用于在远程主机上执行任何可执行文件,包括bash脚本、Python脚本、Perl脚本等。
使用script模块时,需要将本地脚本文件复制到远程主机上,并在远程主机上执行该脚本。可以使用Ansible的copy模块将脚本文件复制到远程主机上,然后使用script模块执行该脚本。

以下是一个使用script模块执行本地脚本的示例:
- name: Execute local script on remote host
  hosts: webserver
  tasks:
    - name: Copy script to remote host
      copy:
        src: /path/to/local/script.sh
        dest: /tmp/script.sh
        mode: 0755
    - name: Execute script on remote host
      script: /tmp/script.sh
在上面的示例中,首先使用copy模块将本地脚本文件复制到远程主机的/tmp目录下,并将其设置为可执行文件。然后使用script模块执行该脚本。


三十二、systemd模块

Ansible的systemd模块用于管理systemd服务。它可以启动、停止、重启、重新加载、启用和禁用systemd服务。

常用参数:
name:服务名称。
state:服务状态,可以是started(启动)、stopped(停止)、restarted(重启)、reloaded(重新加载)、enabled(启用)和disabled(禁用)。
enabled:是否在系统启动时自动启用服务,可以是yes或no。
masked:是否屏蔽服务,可以是yes或no。
daemon_reload:是否重新加载systemd守护进程配置文件,可以是yes或no。
示例:

启动服务:
- name: Start nginx service
  systemd:
    name: nginx
    state: started


三十三、template模块

Ansible的template模块用于在远程主机上生成文件,它可以将本地主机上的模板文件渲染为目标主机上的文件。模板文件可以包含变量、条件语句、循环语句等,这样可以根据不同的情况生成不同的文件。

使用template模块的步骤如下:

在本地主机上创建模板文件,可以使用Jinja2模板语言编写模板文件。

在Ansible playbook中使用template模块,指定模板文件和目标文件的路径。

在模板文件中使用变量、条件语句、循环语句等,根据需要生成目标文件。

示例:

在本地主机上创建一个名为nginx.conf.j2的模板文件,内容如下:

worker_processes {{ nginx_worker_processes }};
pid /run/nginx.pid;

events {
    worker_connections {{ nginx_worker_connections }};
}

http {
    server {
        listen {{ nginx_listen }};
        server_name {{ nginx_server_name }};
        root {{ nginx_root }};
        index index.html;
    }
}
在Ansible playbook中使用template模块,指定模板文件和目标文件的路径:

- name: Generate nginx configuration file
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
在模板文件中使用变量、条件语句、循环语句等,根据需要生成目标文件。在这个例子中,我们使用了一些变量,如nginx_worker_processes、nginx_worker_connections、nginx_listen、nginx_server_name和nginx_root,这些变量可以在Ansible playbook中定义。


三十四、user模块

命令行用法:

ansible all -i inventory -m user -a 'name=newbie  uid=4000 state=present'

运行user模块之前:

运行user模块之后:

模块内容:

Ansible的user模块用于管理系统用户,可以创建、修改和删除用户。以下是user模块的一些常用参数:

name:指定用户的名称。
uid:指定用户的UID。
password:指定用户的密码。
group:指定用户所属的组。
groups:指定用户所属的附加组。
shell:指定用户的默认shell。
home:指定用户的主目录。
state:指定用户的状态,可以是present(存在)、absent(不存在)、locked(锁定)或unlocked(解锁)。
下面是一个使用user模块创建用户的例子:

- name: Create user
  user:
    name: john
    password: "{{ 'password' | password_hash('sha512') }}"
    state: present
这个例子创建了一个名为john的用户,密码为password,并将其状态设置为present(存在)。注意,密码使用了password_hash过滤器进行哈希处理,以保证安全性。


三十五、uri模块

运行playbook:

ansible-playbook  site.yml

模块内容:
ansible uri模块用于发送HTTP、HTTPS、FTP、SCP、SFTP和FILE请求。它可以用于从远程服务器下载文件、上传文件、发送POST请求等。ansible URI模块常用参数如下:

url: 必需,指定要访问的URL。
method: 可选,指定HTTP请求方法,默认为GET。
headers: 可选,指定HTTP请求头。
body: 可选,指定HTTP请求体。
status_code: 可选,指定期望的HTTP响应状态码,默认为200。
timeout: 可选,指定HTTP请求超时时间,默认为30秒。
validate_certs: 可选,指定是否验证SSL证书,默认为True。
return_content: 可选,指定是否返回HTTP响应内容,默认为True。
follow_redirects: 可选,指定是否跟随重定向,默认为True。
user: 可选,指定HTTP基本认证的用户名。
password: 可选,指定HTTP基本认证的密码。
force_basic_auth: 可选,指定是否强制使用HTTP基本认证,默认为False。
client_cert: 可选,指定客户端SSL证书路径。
client_key: 可选,指定客户端SSL证书私钥路径。
client_cert_password: 可选,指定客户端SSL证书密码。


三十六、yum模块和service模块

运行playbook:

ansible-playbook  site.yml --become

yum模块内容:

Ansible的yum模块是用于在远程主机上安装、升级、删除和查询软件包的模块。它使用yum包管理器来执行这些操作。以下是一些常用的yum模块的参数:

name:指定要安装的软件包名称。
state:指定软件包的状态,可以是present(已安装)、absent(未安装)、latest(安装最新版本)。
update_cache:是否更新缓存,默认为yes。
disable_gpg_check:是否禁用GPG检查,默认为no。
enablerepo:指定要启用的仓库。
disablerepo:指定要禁用的仓库。
installroot:指定安装软件包的根目录。
exclude:指定要排除的软件包。
skip_broken:是否跳过损坏的软件包,默认为no。
security:是否只安装安全更新,默认为no。
bugfix:是否只安装错误修复更新,默认为no。
enhancement:是否只安装增强更新,默认为no。
group_package_types:指定要安装的软件包类型,可以是mandatory、default、optional、conditional。
timeout:指定超时时间,默认为30秒。

service模块内容:

Ansible的service模块用于管理系统服务。它可以启动、停止、重启、重新加载、检查状态等等。以下是一些常用的参数:

name:服务名称。
state:服务状态,可以是started(启动)、stopped(停止)、restarted(重启)、reloaded(重新加载)等。
enabled:是否在系统启动时自动启动服务,可以是yes或no。
pattern:用于匹配服务的正则表达式。
sleep:在执行操作之前等待指定的秒数。
timeout:等待服务启动或停止的最长时间,以秒为单位。
arguments:启动服务时传递的参数。
runlevel:服务应该在哪个运行级别下启动。


三十七、yum_repository模块

ansible yum_repository模块用于管理yum仓库,可以添加、删除、修改yum仓库。

常用参数:

name:仓库名称,必填参数。
description:仓库描述。
baseurl:仓库地址,必填参数。
gpgcheck:是否检查GPG签名,默认为yes。
enabled:是否启用该仓库,默认为yes。
gpgkey:GPG密钥地址。
sslverify:是否验证SSL证书,默认为yes。
state:仓库状态,present表示存在,absent表示不存在。
示例:

添加一个yum仓库:

- name: Add yum repository
  yum_repository:
    name: epel
    description: EPEL YUM repo
    baseurl: https://dl.fedoraproject.org/pub/epel/7/x86_64/
    gpgcheck: no
    enabled: yes
 


三十八、 常用模块汇总:

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值