Ansible常用模块介绍及使用方法

以下介绍了Ansible 常用模块以及基础使用方法。
我的博客:https://blog.itwk.cc/

  1. command/module:

    用于在远程主机上执行命令或脚本,命令语法:

    - name: Run Command
      command: command_to_execute
    

    示例:

    - name: Check the package list
      command: yum list installed
    
  2. copy/module:

    用于将文件复制到远程主机,命令语法:

    - name: Copy Files
      copy:
        src: /path/to/local/file
        dest: /path/to/remote/location
    

    示例:

    - name: Copy config file
      copy:
        src: /etc/nginx/nginx.conf
        dest: /etc/nginx/nginx.conf
    
  3. template/module:

    用于根据模板在远程主机上生成配置文件,命令语法:

    - name: Generate Config File
      template:
        src: /path/to/template.conf.j2
        dest: /path/to/remote/location
    

    示例:

    - name: Generate Nginx config file
      template:
        src: /etc/ansible/templates/nginx.conf.j2
        dest: /etc/nginx/nginx.conf
    
  4. yum/module:

    用于在远程主机上安装软件包,命令语法:

    - name: Install Package
      yum:
        name: packagename
        state: present
    

    示例:

    - name: Install Apache
      yum:
        name: httpd
        state: present
    
  5. user/module:

    用于管理用户和用户组,包括添加、删除和修改用户和用户组,命令语法:

    - name: Create User
      user:
        name: username
        password: password
        comment: comment
        uid: uid
        group: group
        shell: shell
        state: present
    

    示例:

    - name: Create User
      user:
        name: john
        password: "{
          
          { 'password' | password_hash('sha512') }}"
        comment: "John Doe"
        uid: 1025
        group: developers
        shell: /bin/bash
        state: present
    
  6. file/module:

    用于管理文件和文件系统,包括创建、删除和修改文件和目录以及设置权限、所有人和所有组,命令语法:

    - name: Create Directory
      file:
        path: /path/to/directory
        state: directory
        mode: mode
        owner: owner
        group: group
    

    示例:

    - name: Create Directory
      file:
        path: /var/www
        state: directory
        mode: '0755'
        owner: nginx
        group: nginx
    
  7. service/module:

    用于管理系统服务(daemons),包括启动、停止、重启和重新加载等,命令语法:

    - name: Restart Nginx
      service:
        name: nginx
        state: restarted
        enabled: true
    

    示例:

    - name: Start MySQL
      service:
        name: mysqld
        state: started
        enabled: true
    
  8. cron/module:

    用于管理计划任务,命令语法:

    - name: Add Cron Job
      cron:
        name: jobname
        minute: '*'
        hour: '*'
        day: '*'
        month: '*'
        weekday: '*'
        user: user
        job: command
    

    示例:

    - name: Add Cron Job
      cron:
        name: "Backup Database"
        minute: "0"
        hour: "1"
        job: "mysqldump --user=root --password=pass dbname | gzip > /backup/dbname.sql.gz"
        user: root
    
  9. expect/module:

    用于通过交互式 shell 与远程主机交互,使 ansible 能够更好地支持远程 shell 程序,命令语法:

    - name: Run Expect
      expect:
        command: command to execute
        responses:
          pattern1:
            response1
          pattern2:
            response2
    

    示例:

    - name: Login to SSH with Expect
      expect:
        command: ssh [email protected]
        responses:
          Password: "{
          
          { ssh_password }}"
          yes/no: "yes"
    

以上就是 Ansible 常用模块的介绍及使用方法。对于每一个 Ansible 模块而言,都有其特定的语法和使用方式。同时,在配置 Ansible 模块时,需要加上“-“号,表明这是一个需要执行的任务。

猜你喜欢

转载自blog.csdn.net/qq_34185638/article/details/131079333