【RHCE】作业:ansible playbook中结合yaml运用各种模块

发布于:2022-11-09 ⋅ 阅读:(6) ⋅ 点赞:(0) ⋅ 评论:(0)

目录

1.创建一个play, 用来创建用户和用户组 第一个任务:创建用户usertest并指定uid为2000,shell类型为/bin/sh 第二个任务:创建用户组grouptest 并指定gid为1999

2.创建一个play,用来创建文件并往文件中写入内容, 并压缩 第一个任务:创建一个data.txt文件, 第二个任务:写入:This file is for archive 第三个任务: 压缩文件 data.txt为data.tar.gz

3.创建一个play, 用来安装软件iptables, 并启动服务,然后停止服务 第一个任务,安装iptables 第二个任务: 启动服务 第三个任务:停止服务

4.创建一个play,完成新建连接并启用 首先,关闭node1, 添加一块网卡 创建任务,在新添加的网卡上新建连接

5.创建一个play,完成LVM的配置 首先,关闭node1, 在node1上添加一块硬盘,2GB

第一个任务:为磁盘设置第一个分区:500MB, flags=lvm

第二个任务:为磁盘设置第二个分区:500MB, flags=lvm

第三个任务:为磁盘设置第三个分区:500MB, flags=lvm

第四个任务:使用上边建立的三个分区,建立PV和VG(使用lvg模块)

第五个任务:使用上面建立的vg建立逻辑卷(lv), lv大小为1.2GB

第六个任务:为上面建立的lv建立文件系统,类型为xfs

第七个任务:将上面建立的逻辑卷挂载到/mount_data目录下

第八个任务:在/mount_data下创建文件data.txt


注:playbook里对缩进格式要求严格,可以去vim /etc/vimrc加一句写的更方便

 autocmd  FileType yaml setlocal ai ts=2 sw=2 et

 【在ansible下创建yaml文件,据我观察应该是可以一个yaml文件里根据play的名字的来执行,但是我又不确定,算了还是老实每个yaml写一个play】

【老师说可以根据play名字执行,自学事倍功半,俺就不去查了】

1.创建一个play, 用来创建用户和用户组 第一个任务:创建用户usertest并指定uid为2000,shell类型为/bin/sh 第二个任务:创建用户组grouptest 并指定gid为1999

        vim /root/ansible/test1.yaml

                

---
- name:
  hosts: node1
  tasks:
    - name: userad
      user:
        name: usertest
        uid: 2000
        shell: "/bin/sh"
    - name: groupad
      group:
        name: grouptest
        gid: 1999
...

         【一定注意缩进格式,层次不一样的】

        

         【验证成功】

2.创建一个play,用来创建文件并往文件中写入内容, 并压缩 第一个任务:创建一个data.txt文件, 第二个任务:写入:This file is for archive 第三个任务: 压缩文件 data.txt为data.tar.gz

         【我是准备创建在node1的/test下,没文件夹自己创建】

        vim /root/ansible/test2.yaml

        

---
- name:
  hosts: node1
  tasks:
    - name: filecreat
      file:
        path: /test/data.txt
        state: touch
    - name: txtinsert
      lineinfile:
        path: /test/data.txt
        line: "This file is for archive"
    - name: tar
      archive:
        path: /test/data.txt
        dest: /test/data.tar.gz
        format: gz
...

         【验证】

        

3.创建一个play, 用来安装软件iptables, 并启动服务,然后停止服务 第一个任务,安装iptables 第二个任务: 启动服务 第三个任务:停止服务

        vim /root/ansible/test3.yaml 

         

---
- name:
  hosts: node1
  tasks:
    - name: yumiptb
      yum:
        name: iptables-services.x86_64
        disable_gpg_check: yes
    - name: start
      service:
        name: iptables
        state: started
    - name: stop
      service:
        name: iptables
        state: stopped
...

        【如果node1已经安装了iptables的话任务1应该会是绿色,黄色表示我之前没有,现在发生了更改】

4.创建一个play,完成新建连接并启用 首先,关闭node1, 添加一块网卡 创建任务,在新添加的网卡上新建连接

        vim /root/ansible/test4.yaml 【这个仅供参考】 

         

         【看样子是创建成功了,回显失败,但是网卡又确实创建了,而且创建了网卡激活了的话node1就不是node1了,所以暂时就这样把】

---
- name:
  hosts: node1
  tasks:
    - name: ensadd
      nmcli:
        conn_name: newens
        ip4: 192.168.174.222/24
        gw4: 192.168.174.2
        dns4: 114.114.114.114
        state: present
        type: ethernet
...

        【👇看,确实创建这个网卡成功了】 

         

5.创建一个play,完成LVM的配置 首先,关闭node1, 在node1上添加一块硬盘,2GB

第一个任务:为磁盘设置第一个分区:500MB, flags=lvm

第二个任务:为磁盘设置第二个分区:500MB, flags=lvm

第三个任务:为磁盘设置第三个分区:500MB, flags=lvm

第四个任务:使用上边建立的三个分区,建立PV和VG(使用lvg模块)

第五个任务:使用上面建立的vg建立逻辑卷(lv), lv大小为1.2GB

第六个任务:为上面建立的lv建立文件系统,类型为xfs

第七个任务:将上面建立的逻辑卷挂载到/mount_data目录下

第八个任务:在/mount_data下创建文件data.txt

         先把node1关机去添加一块2gb硬盘

        

         vim /root/ansible/test5.yaml

        

         

 

---
- name:
  hosts: node1
  tasks:
    - name: sortpart1
---
- name:
  hosts: node1
  tasks:
    - name: sortpart1
      parted:
        device: /dev/nvme0n2
        label: msdos
        part_type: primary
---
- name:
  hosts: node1
  tasks:
    - name: sortpart1
      parted:
        device: /dev/nvme0n2
        label: msdos
        part_type: primary
        flags: lvm
        number: 1
        part_start: 1MB
        part_end: 500MB
        state: present
    - name: sortpart2
      parted:
        device: /dev/nvme0n2
        label: msdos
        part_type: primary
        flags: lvm
        number: 2
        part_start: 501MB
        part_end: 1001MB
        state: present
    - name: sortpart3
      parted:
        device: /dev/nvme0n2
        label: msdos
        part_type: primary
        flags: lvm
        number: 3
        part_start: 1002MB
        part_end: 1502MB
        state: present
    - name: lvg
      lvg:
        pvs: "/dev/nvme0n2p1,/dev/nvme0n2p2,/dev/nvme0n2p3"
        pesize: 4
        vg: myvg
        state: present
    - name: lvjuan
      lvol:
        vg: myvg
        lv: mylv1
        size: 1.2G
        state: present
    - name: fstype
      filesystem:
        dev: /dev/myvg/mylv1
        fstype: xfs
    - name: mount
      mount:
        src: /dev/myvg/mylv1
        path: /mount_data
        fstype: xfs
        state: mounted
    - name: creatfile
      file:
        path: /mount_data/data.txt
        state: touch
...

 【lv分卷的时候单位错了,应该是1.2G不是1.2GB,所以之前的任务都执行过了回显绿色】

        【验证完成,圆满完成任务,那个逻辑卷lv有1.2G一块分区不够所以他自动分配到别的分摊去了】