• 【Ansible】Ansible常用模块


    Ansible常用模块

    一、ansible的3个远程模块的区别

    • command:ansible的默认模块,常见命令都可以使用,但该命令不是使用shell进行执行的,所以一些正则表达式类如(^&<<>> |)是不可以使用的
    • shell:使用shell模块是通过/bin/bash进行执行的,在终端各种命令都可以使用
    • scripts:使用scripts模块可以在本地写一个脚本,在远处服务器上使用
    ---
     - name: shell test
       hosts: all
       tasks:
         - name: shell
           shell:
              cmd: |
                mkdir chaijin
                sh /root/shell/123.sh
    
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    采用shell进行文件夹创建以及脚本运行

    shell中cmd用做写入执行的命令,chdir用来切换目录

    如果需要进行多命令执行,使用“|”符号,

    shell:
              cmd: |
                mkdir chaijin
                sh /root/shell/123.sh
    
    • 1
    • 2
    • 3
    • 4

    请添加图片描述

    二、YUM模块

    用于软件的安装升级和卸载

    ---
    - name: loop
      hosts: all
      vars:
        mail_services:
           - httpd
           - tftp-server
           - dhcp
           - vsftpd
      tasks:
       - name: loop running
         yum:
           name: "{{ item }}"
         loop: "{{ mail_services }}"
    ...
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    定义列表变量vars

    列表内容为服务名称

    通过loop循环mail_services列表取出值让tasks任务进行下载

    三、service模块

    service是用来控制服务的启动重启或者停止

    ---
    - name: loop
      hosts: 172.16.10.9
      tasks:
        - name: httpd is running
          service:
              name: tftp
              state: started
        - name: firewalld is running
          service:
             name: firewalld
             state: started
    ...
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    service在定义的时候需要定义操作的服务名称,以及操作状态,缺一不可

    请添加图片描述

    四、copy模块

    ---
     - name: copytest
       hosts: all
       tasks:
          - name: copy
            copy:
              src: /root/test.txt
              dest: /root
              owner: root
              group: root
              mode: '777'
    ...
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    参数作用
    src指定本地文件位置
    dest指定复制到远程节点位置
    group复制文件的组用户信息
    owner复制文件的主用户信息
    mode设定复制文件权限

    请添加图片描述

    五、file模块

    file是专门处理文件的模块,即可以将文件所属组和权限进行修改,还可以进行文件的传输

    参数作用
    mode文件权限
    path被控制主机的文件位置
    src指定本地文件位置
    dest指定复制到远程节点位置
    group复制文件的组用户信息
    owner复制文件的主用户信息
    ---
     - name: file
       hosts: all
       tasks:
         - name: file
           file:
             path: /root/test.txt
             owner: root
             group: root
             mode: '666'
    ...
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    六、fetch模块

    与file和copy类似,文件拉取模块,只是拉取方向不同,fetch是将被管理机的文件拉取到管理机中

    参数作用
    src指定本地文件位置
    dest指定复制到远程节点位置
    ---
     - name: fetch
       hosts: all
       tasks:
         - name: fetch test
           fetch:
            src: /root/test.txt
            dest: /root/fetch
    
    ...
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    请添加图片描述

  • 相关阅读:
    【研发管理】产品经理知识体系-产品创新管理
    JS(二)
    双点重发布&路由策略实验
    【Pytorch Lighting】第 5 章:时间序列模型
    解析Spring中的循环依赖问题:再探三级缓存(AOP)
    (4) OpenCV图像处理kNN近邻算法-识别数字0和1
    Go语言基础01 变量
    tomcat web.xml文件中servlet的load-on-startup
    力扣第459题 重复的子字符串 巧用erase find c++注释版
    python教程:if else和where true 流程控制正确使用教程
  • 原文地址:https://blog.csdn.net/weixin_46532751/article/details/126048400