• Ansible命令模块(yum模块 copy模块 file模块 )


    1.yum模块

     

    1)语法帮助

     

    [root@m01 ~]# ansible-doc yum
    EXAMPLES:
    - name: install the latest version of Apache
      yum:
        name: httpd
        state: latest
    
    name:
        httpd                        #服务的名字
        http://                         #软件包网上的地址
        /usr/local/src/nginx-release-centos-6-0.el6.ngx.noarch.rpm        #本地的rpm包
    state:
        latest                        #安装最新的版本
        present                        #安装
        absent                        #卸载

     

    2)yum实例

    #名字安装httpd
    [root@m01 ~]# ansible 'web_group' -m yum -a 'name=httpd state=present'
    #类似于在远程机器上执行 yum install -y httpd
    
    #使用网上软件包安装
    1.找到网上的包
    https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.1-1.el7.x86_64.rpm
    2.安装
    [root@m01 ~]# ansible 'web_group' -m yum -a 'name=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.1-1.el7.x86_64.rpm state=present'
    #类似于在远程机器上执行 yum install -y https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.1-1.el7.x86_64.rpm
    
    #使用本地包安装
    1.上传包(上传到web端)
    2.安装
    [root@m01 ~]# ansible 'web_group' -m yum -a 'name=/tmp/nginx-1.16.1-1.el7.ngx.x86_64.rpm state=present'
    #类似于在远程机器上执行 yum localinstall -y /tmp/nginx-1.16.1-1.el7.ngx.x86_64.rpm

    2.copy模块

     

    1)帮助语法

     

    [root@m01 ~]# ansible-doc copy
    EXAMPLES:
    - name: Copy file with owner and permissions
      copy:
        src: /srv/myfiles/foo.conf
        dest: /etc/foo.conf
        owner: foo
        group: foo
        mode: '0644'
        backup: yes
        follow: yes
        content: '# This file was moved to /etc/other.conf'
        
    src:             #源路径(要进行copy的文件,文件在控制端)
    dest:             #目标路径(在受控端)
    owner:             #文件推过去之后的属主
    group:             #文件推过去之后的属组
    mode:            #文件推过去之后的权限
    backup:            #文件件是否备份
        yes            #备份
        no            #不备份
    follow:            #是否识别软链接
        yes
        no
    content:        #直接写入内容到文件

     

    2)copy模块实例

     

    #推送nginx官方源
    [root@m01 ~]# ansible 'web_group' -m copy -a 'src=/etc/yum.repos.d/nginx.repo dest=/etc/yum.repos.d/'
    
    #推送文件并授权
    [root@m01 ~]# ansible 'web_group' -m copy -a 'src=/root/test.conf dest=/etc/nginx/conf.d/ owner=root group=root mode=777'
    
    #推送文件并备份
    [root@m01 ~]# ansible 'web_group' -m copy -a 'src=/code/index.html dest=/code owner=nginx group=nginx mode=0644 backup=yes'
    
    #识别软链接
    [root@m01 ~]# ansible 'web_group' -m copy -a 'src=/root/test dest=/tmp owner=nginx group=nginx mode=0644 follow=yes'
    [root@m01 ~]# ansible 'web_group' -m copy -a 'src=/root/test dest=/tmp owner=nginx group=nginx mode=0644 follow=no'
    
    #直接写入内容到文件
    [root@m01 ~]# ansible 'web_group' -m copy -a 'content="123456" dest=/etc/rsync_password mode=0600'

     

     

    3.file模块

     

    1)帮助语法

    [root@m01 ~]# ansible-doc file
    EXAMPLES:
    - name: Change file ownership, group and permissions
      file:
        path: /etc/foo.conf
        owner: foo
        group: foo
        mode: '0644'
        state: link,hard,touch,directory,absent
        recurse: yes
    
    src:            #源文件(如果做软链接就是远程机器上的文件)
    dest:            #目标文件(如果做软链接就是远程机器上的链接文件)
    path:            #路径/文件
    owner:            #文件或目录的属主
    group:            #文件或目录的属组
    mode:            #文件或目录的权限
    state:
        link        #软链接
        touch        #创建文件
        directory    #创建目录
        absent        #删除
    recurse:        #递归操作
        yes

     

    2)file模块实践

     

    1.创建目录
    [root@m01 ~]# ansible 'web_group' -m file -a 'path=/code state=directory'
    #相当于到远程机器 mkdir /code
    
    2.创建目录并授权
    [root@m01 ~]# ansible 'web01' -m file -a 'path=/code state=directory owner=nginx group=nginx mode=755'
    #相当于执行 mkdir /code && chown -R nginx.nginx /code && chmod 755 /code
    
    3.递归创建目录
    [root@m01 ~]# ansible 'web01' -m file -a 'path=/code/wordpress/wp-content/uploads state=directory owner=nginx group=nginx mode=755'
        1)如果目录不存在则创建并递归授权
        2)如果目录上级存在,则只授权新创建的目录
    
    4.递归授权目录
    [root@m01 ~]# ansible 'web01' -m file -a 'path=/code state=directory owner=nginx group=nginx mode=755 recurse=yes'
    
    5.创建文件
    [root@m01 ~]# ansible 'web01' -m file -a 'path=/code/1.txt state=touch owner=nginx group=nginx mode=666'
    
    6.删除文件
    [root@m01 ~]# ansible 'web01' -m file -a 'path=/code/index.html state=absent'
    
    7.做软连接
    [root@m01 ~]# ansible 'web01' -m file -a 'src=/code/wordpress dest=/code/link state=link'
    
    #注意:
        1.创建文件时,上层目录必须存在

     

  • 相关阅读:
    Thymeleaf 用法
    如何使用FormData上传压缩裁剪后的图片Blob对象
    video播放视频以及相关事件
    将表单序列化为json对象
    滑动到底部自动加载下一页内容,手机H5页面
    获取URL参数
    关于循环往集合添加元素,而导致的元素覆盖问题
    SpringMVC传递数组参数
    SQL查询语句
    jQuery DOM节点操作
  • 原文地址:https://www.cnblogs.com/chenlifan/p/13777201.html
Copyright © 2020-2023  润新知