其他分享
首页 > 其他分享> > ansible常用模块-2

ansible常用模块-2

作者:互联网

11. user group

user模块是请求的是useradd, userdel, usermod三个指令
goup模块请求的是groupadd, groupdel, groupmod 三个指令。
home:指定用户的家目录,需要与createhome配合使用
groups:指定用户的属组
uid:指定用的uid
password:指定用户的密码
name:指定用户名
createhome:是否创建家目录 yes|no
system:是否为系统用户
remove:当state=absent时,remove=yes则表示连同家目录一起删除,等价于userdel -r
state:是创建还是删除
shell:指定用户的shell环境
 
添加一个用户,快速添加
ansible jumpserver -m user -a 'name=user01 state=present password=123456 uid=1000 shell=/bin/bash'
      user: name=xiaoqiang  uid=1100  state=present  ##添加
user -a "name=xiaoqiang state=absent remove=yes  ##删除
添加一个用户并指定组
ansible 192.168.56.11 -m group -a 'name=user01 gid=1000 state=present system=yes'


12. mount

配置挂载点选项: 
dump
fstype:必选项,挂载文件的类型 
name:必选项,挂载点    ##挂载到哪里
opts:传递给mount命令的参数
src:必选项,要挂载的文件
state:必选项 
--present:只处理fstab中的配置 
--absent:删除挂载点 
--mounted:自动创建挂载点并挂载之 
--umounted:卸载
例子:
ansible cobbler -m mount -a 'name=/mnt src=/dev/sdb1 fstype=ext4 state=mounted'  ##挂载
ansible cobbler -m mount -a 'name=/mnt  fstype=ext4 state=unmounted' ##卸载


13. raw

ansible shiyan -m raw -a 'hostname | ls'
主要的用途是在command中添加管道符号


14. fetch

参数

必填

默认值

选项

说明

Dest

Yes



用来存放文件的目录,例如存放目录为backup,源文件名称为/etc/profile在主机pythonserver中,那么保存为/backup/pythonserver/etc/profile

Fail_on_missing

No

No

Yes/no

当源文件不存在的时候,标识为失败

Flat

No



允许覆盖默认行为从hostname/path到/file的,如果dest以/结尾,它将使用源文件的基础名称

Src

Yes



在远程拉取的文件,并且必须是一个file,不能是目录

Validate_checksum

No

Yes

Yes/no

当文件fetch之后进行md5检查

- name: get info
  fetch: src=/opt/{{ inventory_hostname }}.txt dest=/home/jiangluqiang/tmp/ flat=yes
{{ inventory_hostname }}:   为host文件的连接ip变量           
dest=/home/jiangluqiang/:   会自动创建目录/不用手动创建   
flat=yes    自定义目录必须为yes


15. lineinfile

- name: Write ipaddr
  lineinfile:
    dest: /etc/sysconfig/network-scripts/ifcfg-eth0
    line: "{{ item.line }}"
    state: present
  with_items:
    - { line: "IPADDR={{ ansible_default_ipv4.netmask }}" }
    - { line: "NETMASK={{ ansible_default_ipv4.address }}" }
    - { line: "GATEWAY={{ ansible_default_ipv4.gateway }}" }
    
    
- hosts: shiyan
  tasks:
  - name: "/tmp/hello.txt"                 
    lineinfile:
      dest: "/tmp/hello.txt"            要修改文件
      regexp: '1111'                    要修改的内容
      line: 'xxx'                       新的内容
      #backup: yes 没有匹配的内容的就追加到最后一行
      backrefs: yes                     
no:表示如果没有匹配到,则增加line;如果匹配成功,则替换line;
        yes:表示如果没有匹配到,则不变line;如果匹配成功,则替换line;
        
        
二、  直接往文件中添加东西
lineinfile: dest=/etc/profile state=present line='export HISTSIZE=0'


三、 支持正则
lineinfile: dest=/etc/resolv.conf regexp='^nameserver' line='nameserver {{ dns_server_host }}'
(1)修改或注释所匹配的行数,比如说禁用selinux
ansible 192.168.56.11 -m lineinfile -a "dest=/etc/selinux/config regexp='^SELINUX=' line='SELINUX=disabled'" 
(2)在匹配的内容前增加一行
ansible 192.168.56.11 -m lineinfile -a "dest=/etc/sysconfig/iptables insertbefore='^COMMIT' line='-A INPUT -p tcp --dport 80 -j ACCEPT'" 
(3)在匹配的内容后增加一行
ansible 192.168.56.11 -m lineinfile -a "dest=/etc/sysconfig/iptables insertafter='^COMMIT' line='-A INPUT -p tcp --dport 81 -j ACCEPT'" 
(4)删除某一行内容
ansible 192.168.56.11 -m lineinfile -a "dest=/etc/sysconfig/iptables state=absent regexp='^-A INPUT -p tcp --dport 81 -j ACCEPT'" 
(5)文件存在就添加一
ansible 192.168.56.11 -m lineinfile -a "dest=/etc/hosts line='192.168.1.1 192_168_1_1'" 
(6)如果匹配到,引用line这一行作为替换。如果没有匹配到,则完全引用line这一行作为添加
ansible 192.168.56.11 -m lineinfile -a "dest=/etc/sudoers state=present regexp='^%wheel' line='%wheel ALL=(ALL) NOPASSWD: ALL'"


标签:常用,name,dest,lineinfile,state,ansible,模块,line
来源: https://blog.51cto.com/u_15196512/2786574