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'
配置挂载点选项: 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' ##卸载
ansible shiyan -m raw -a 'hostname | ls' 主要的用途是在command中添加管道符号
参数 | 必填 | 默认值 | 选项 | 说明 |
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
- 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'"