Ansible常用模块

文章目录

  • sysctl模块
  • systemd模块
  • selinux模块
  • blockinfile 模块
  • 参考文档

sysctl模块

管理sysctl.conf文件,可用来管理内核参数

常用参数 默认值 注释
name 指定sysctl支持的变量,内核参数可以在这里管理
state present 定义该值是否应该在sysctl文件中存在,present存在,absent不存在
sysctl_file “/etc/sysctl.conf” 设置sysctl.conf文件位置
value name变量对应的值
- name: Setting present kernel params
  sysctl:
    name: "{{ item.name }}"
    value: "{{ item.value }}"
    ignoreerrors: yes
    state: present
  with_items:
    - { name: 'net.core.rmem_default', value: 8388608 }
    - { name: 'net.core.rmem_max', value: 16777216  }
    - { name: 'net.core.wmem_default', value: 8388608  }
    - { name: 'net.core.wmem_max', value: 16777216 }
    - { name: 'net.ipv4.igmp_max_memberships', value: 512  }
    - { name: 'net.ipv4.conf.bond0.force_igmp_version', value: 2  }
    - { name: 'vm.max_map_count', value: 655360 }
  become: yes

systemd模块

管理services

常用参数 默认值 注释
daemon_reload no 任何操作之前先执行daemon-reload操作,no/yes
enabled 设置是否开机启动,no/yes
name 服务名称
state reloaded重载,restarted重启,started启动,stopped停止
- name: Stop and Disable service
  systemd:
    name: "{{ item }}"
    state: stopped
    enabled: no
  with_items:
    - firewalld
    - irqbalance
  become: yes

selinux模块

管理selinx的状态和策略

  • 配置SELinux模式和策略
  • 使用后可能需要重启,比如本来是开启的现在状态定义为disabled就需要重启生效,required可以设置为yes会帮你重启,默认no
  • 不会自动帮你重启,但是重启生效的会有提示信息
常用参数 默认值 注释
configfile “/etc/selinux/config” 文件路径,默认"/etc/selinux/config"
policy SELinux的策略
state The SELinux mode.disabled,enforcing,permissive
- name: Stop SELinux
  selinux:
    policy: targeted
    state: permissive
  become: yes

- name: Disable SELinux
  selinux:
    state: disabled
  become: yes

blockinfile 模块

插入/更新/移除被标记线环绕的文本信息

常用参数 默认值 注释
backup no 如果为yes表示创建一个包含时间戳信息的备份文件,如果错误修改了可以获得源文件
block “” 要插入标记行内的文本,如果为空串这个块会被删除
create no 如果此文件不存在,创建一个新文件
group 文件属组
insertafter EOF 如果使用这个参数,将会再最后一次匹配到正则表达式之后插入块,EOF意味着再文件最后插入这一行,如果指定的正则表达式没有匹配成功,EOF将会生效
insertbefore EOF insertafter类似不同点就是会在最后一次匹配正则表达式成功之前插入块
marker “# {mark} ANSIBLE MANAGED BLOCK” 标记信息,标记信息的模板
marker_begin “BEGIN” 会替换掉标记信息的{mark}作为标识块的开始
marker_end “END” 会替换掉标记信息的{mark}作为标识块的开始
mode 设置文件权限
owner 文件属主
path 修改的文件路径
state present 该块是否应该存在,默认present,不应该存在就填写absent
- name: Update /etc/security/limits.conf
  blockinfile:
    dest: /etc/security/limits.conf
    insertbefore: '# End of file'
    block: |
      * soft nofile 131072
      * hard nofile 131072
      * soft core unlimited
      * hard core unlimited
      * soft memlock unlimited
      * hard memlock unlimited
  become: yes

执行之后的效果为

# BEGIN ANSIBLE MANAGED BLOCK
* soft nofile 131072
* hard nofile 131072
* soft core unlimited
* hard core unlimited
* soft memlock unlimited
* hard memlock unlimited
# END ANSIBLE MANAGED BLOCK

在文件的结尾会有该块信息,注意如果手动删除了标识符,会导致无法正确定位到块

参考文档

  • https://docs.ansible.com/ansible/latest/modules/systemd_module.html
  • https://docs.ansible.com/ansible/latest/modules/sysctl_module.html
  • https://docs.ansible.com/ansible/latest/modules/selinux_module.html
  • https://docs.ansible.com/ansible/latest/modules/blockinfile_module.html

你可能感兴趣的:(Ansible)