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.创建文件时,上层目录必须存在

 

 

posted @ 2020-10-07 14:04  六月OvO  阅读(427)  评论(0编辑  收藏  举报