案例一般在ansible当中去修改某个文件的单行进行替换的时候需要使用lineinfile模式

 - name: 关闭SElinux
  lineinfile:
    dest: /etc/selinux/config
    regexp: "^SELINUX="
    line: "SELINUX=disabled"

比如替换selinux当中的以SELINUX开头的行,替换为disabled
line参数 : 使用此参数指定文本内容。

regexp参数 :使用正则表达式匹配对应的行,当替换文本时,如果有多行文本都能被匹配,则只有最后面被匹配到的那行文本才会被替换,当删除文本时,如果有多行文本都能被匹配,这么这些行都会被删除。

如果想进行多行匹配进行替换需要使用replace模块

- name: 注释默认ntp服务器
  replace:
    path: /etc/chrony.conf
    regexp: "^server"
    replace: "#server"

如果在文件的首行添加内容呢?
指定在kubeadm上面添加,这个做法也是可以的,在第二层上面去添加,在某行插入

- name: 配置脚本内容
  lineinfile:
    dest: /opt/k8s/init-master.sh
    insertbefore: 'kubeadm(.*)'
    line: '#!/bin/bash'

在文本的某行的下面插入内容

- name: To prevent docker OOM
  lineinfile:
    dest: /usr/lib/systemd/system/docker.service
    insertafter: "Type=notify"
    line: "OOMScoreADjust=-1000"

templates目录:templates模块会自动在此目录中寻找Jinja2模板文件;
src 源目录
dest 目的目录,引用with_items变量,下面可以写多个
force:yes file模块的用法,– force:需要在两种情况下强制创建软链接,一种是源文件不存在但之后会建立的情况下;另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|no

command用于执行远程命令,但不执行复杂的命令

- name: 添加外网yum源
  template:
    src: "templates/{{ item }}.j2"
    dest: "/opt/{{item}}"
    force: yes
  with_items:
    - yum.sh

- name: 配置外网yum源
  command: bash /opt/"{{item}}"
  with_items:
    - yum.sh

注册变量输出debug命令,查看相关详细信息的输出

- name: 验证查看当前时间
  shell: timedatectl && chronyc sources
  register: time
- name: 列出本地服务器的实际同步详细信息
  debug:
    msg: "{{time.stdout_lines}}"