目录
#:环境准备参考上篇文章
1、创建一个play, 用来创建用户和用户组
2、创建一个play,用来创建文件并往文件中写入内容, 并压缩
3、创建一个play, 用来安装软件iptables, 并启动服务,然后停止服务
4、创建一个play,完成新建连接并启用
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
#:环境准备参考上篇文章
1、创建一个play, 用来创建用户和用户组
创建用户usertest并指定uid为2000,shell类型为/bin/sh
创建用户组grouptest 并指定gid为1999
[root@manage ansible]# pwd
/root/ansible
[root@manage ansible]# vim xht1.yaml 创建并进入编写
---
- name: play1
hosts: node1
tasks:
- name: usertest exists with UID 2000
user:
name: usertest
uid: 2000
shell: "/bin/sh"
- name: play2
hosts: node1
tasks:
- name: geouptest exists with GID 1999
group:
name: grouptest
gid: 1999
...
:wq 保存并退出
验证
[root@manage ansible]# ansible-playbook xht1.yaml
PLAY [play1] **********************************************************************
TASK [Gathering Facts] ************************************************************
ok: [node1]
TASK [usertest exists with UID 2000] **********************************************
changed: [node1]
PLAY [play2] **********************************************************************
TASK [Gathering Facts] ************************************************************
ok: [node1]
TASK [geouptest exists with GID 1999] *********************************************
changed: [node1]
PLAY RECAP ************************************************************************
node1 : ok=4 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
在node1上验证一下
[root@node1 ~]# cat /etc/passwd | grep usertest
usertest:x:2000:2000::/home/usertest:/bin/sh
[root@node1 ~]# cat /etc/group | grep grouptest
grouptest:x:1999:
成功创建
2、创建一个play,用来创建文件并往文件中写入内容, 并压缩
第一个任务:创建一个data.txt文件,
第二个任务:写入:This file is for archive
第三个任务: 压缩文件 data.txt为data.tar.gz
[root@manage ansible]# vim xht2.yaml 创建并进入编写
---
- name:
hosts: node1
tasks:
- name: filecreat
file:
path: ~/test/data.txt # 我是在~/test/下创建的,node1上没有的可以先创建一下
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
...
:wq 保存并退出
验证
[root@manage ansible]# ansible-playbook xht2.yaml
PLAY [node1] *********************************************************************************
TASK [Gathering Facts] ***********************************************************************
ok: [node1]
TASK [filecreat] *****************************************************************************
changed: [node1]
TASK [txtinsert] *****************************************************************************
ok: [node1]
TASK [tar] ***********************************************************************************
ok: [node1]
PLAY RECAP ***********************************************************************************
node1 : ok=4 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
在node1上验证一下
[root@node1 ~]# cd ~/test/
[root@node1 test]# ll
total 8
-rw-r--r--. 1 root root 51 Nov 18 12:12 data.tar.gz
-rw-r--r--. 1 root root 25 Nov 18 12:12 data.txt
[root@node1 test]# cat data.txt
This file is for archive
成功执行
3、创建一个play, 用来安装软件iptables, 并启动服务,然后停止服务
第一个任务:安装iptables
第二个任务:启动服务
第三个任务:停止服务
[root@manage ansible]# vim xht3.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
...
:wq 保存并退出
验证
[root@manage ansible]# ansible-playbook xht3.yaml
PLAY [node1] *********************************************************************************
TASK [Gathering Facts] ***********************************************************************
ok: [node1]
TASK [yumiptb] *******************************************************************************
ok: [node1]
TASK [start] *********************************************************************************
changed: [node1]
TASK [stop] **********************************************************************************
changed: [node1]
PLAY RECAP ***********************************************************************************
node1 : ok=4 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
在node1上查看状态是否为最后一个任务的停止
[root@node1 test]# systemctl status iptables
● iptables.service - IPv4 firewall with iptables
Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor preset: disable>
Active: inactive (dead)
Nov 18 12:18:55 node1 systemd[1]: iptables.service: Succeeded.
Nov 18 12:18:55 node1 systemd[1]: Stopped IPv4 firewall with iptables.
Nov 18 12:20:36 node1 systemd[1]: Starting IPv4 firewall with iptables...
Nov 18 12:20:36 node1 iptables.init[22362]: iptables: Applying firewall rules: [ OK ]
Nov 18 12:20:36 node1 systemd[1]: Started IPv4 firewall with iptables.
Nov 18 12:20:37 node1 systemd[1]: Stopping IPv4 firewall with iptables...
Nov 18 12:20:37 node1 iptables.init[22530]: iptables: Setting chains to policy ACCEPT: raw ma>
Nov 18 12:20:37 node1 iptables.init[22530]: iptables: Flushing firewall rules: [ OK ]
Nov 18 12:20:37 node1 systemd[1]: iptables.service: Succeeded.
Nov 18 12:20:37 node1 systemd[1]: Stopped IPv4 firewall with iptables.
成功执行
4、创建一个play,完成新建连接并启用
首先,关闭node1, 添加一块网卡
创建任务,在新添加的网卡上新建连接
[root@manage ansible]# vim xht4.yaml 创建并进入编写
---
- name:
hosts: node1
tasks:
- name: ensadd
nmcli:
conn_name: newens
ip4: 192.168.153.131/24
gw4: 192.168.153.2
dns4: 114.114.114.114
state: present
type: bond
...
: wq 保存并退出
验证
[root@manage ansible]# ansible-playbook xht4.yaml
PLAY [node1] *********************************************************************************
TASK [Gathering Facts] ***********************************************************************
ok: [node1]
TASK [ensadd] ********************************************************************************
changed: [node1]
PLAY RECAP ***********************************************************************************
node1 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
在node1上查看是否创建成功
[root@node1 ~]# nmcli c
NAME UUID TYPE DEVICE
ens160 5507556e-920b-45bb-8467-7a68f1aba802 ethernet ens160
newens c2d472a2-68e1-408d-9d10-7ec0645a743a bond newens
virbr0 a8efc39a-5a12-4891-8686-b859dbda07b9 bridge virbr0
使用新建网卡进行连接
[C:\~]$ ssh 192.168.153.131
Connecting to 192.168.153.131:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
Activate the web console with: systemctl enable --now cockpit.socket
This system is not registered to Red Hat Insights. See https://cloud.redhat.com/
To register this system, run: insights-client --register
Last login: Sat Nov 19 00:46:28 2022 from 192.168.153.1
Session lifetime based on X11 requested, but X11 initialization failed.
[root@node1 ~]#
成功执行
5、创建一个play,完成LVM的配置
首先,关闭node1, 在node1上添加一块硬盘,2GB
第一个任务:为磁盘设置第一个分区:500MB, flags=lvm
[root@manage ansible]# vim xht5.yaml
---
- name:
hosts: node1
tasks:
- name: dev1
parted:
device: /dev/nvme0n3
number: 1
part_start: 1MB
part_end: 500MB
flags: lvm
state: present
第二个任务:为磁盘设置第二个分区:500MB, flags=lvm
- name: dev2
parted:
device: /dev/nvme0n3
number: 2
part_start: 501MB
part_end: 1000MB
flags: lvm
state: present
第三个任务:为磁盘设置第三个分区:500MB, flags=lvm
- name: dev3
parted:
device: /dev/nvme0n3
number: 3
part_start: 1001MB
part_end: 1500MB
flags: lvm
state: present
第四个任务:使用上边建立的三个分区,建立PV和VG(使用lvg模块)
- name: dev4
lvg:
pvs: /dev/nvme0n3p1,/dev/nvme0n3p2,/dev/nvme0n3p3
vg: vg1
第五个任务:使用上面建立的vg建立逻辑卷(lv), lv大小为1.2GB
- name: dev5
lvol:
vg: vg1
lv: lv1
size: 1200
第六个任务:为上面建立的lv建立文件系统,类型为xfs
- name: dev6
filesystem:
dev: /dev/vg1/lv1
fstype: xfs
第七个任务:将上面建立的逻辑卷挂载到/mount_data目录下
- name: dev7
mount:
fstype: xfs
path: /mount_data
src: /dev/vg1/lv1
state: mounted
第八个任务:在/mount_data下创建文件data.txt
- name: dev8
file:
state: touch
path: /mount_data/data.txt
...
合并在一起
---
- name:
hosts: node1
tasks:
- name: dev1
parted:
device: /dev/nvme0n3
number: 1
part_start: 1MB
part_end: 500MB
flags: lvm
state: present
- name: dev2
parted:
device: /dev/nvme0n3
number: 2
part_start: 501MB
part_end: 1000MB
flags: lvm
state: present
- name: dev3
parted:
device: /dev/nvme0n3
number: 3
part_start: 1001MB
part_end: 1500MB
flags: lvm
state: present
- name: dev4
lvg:
pvs: /dev/nvme0n3p1,/dev/nvme0n3p2,/dev/nvme0n3p3
vg: vg1
- name: dev5
lvol:
vg: vg1
lv: lv1
size: 1200
- name: dev6
filesystem:
dev: /dev/vg1/lv1
fstype: xfs
- name: dev7
mount:
fstype: xfs
path: /mount_data
src: /dev/vg1/lv1
state: mounted
- name: dev8
file:
state: touch
path: /mount_data/data.txt
...
验证
[root@manage ansible]# ansible-playbook xht5.yaml
PLAY [node1] ******************************************************************************************
TASK [Gathering Facts] ********************************************************************************
ok: [node1]
TASK [dev1] *******************************************************************************************
changed: [node1]
TASK [dev2] *******************************************************************************************
changed: [node1]
TASK [dev3] *******************************************************************************************
changed: [node1]
TASK [dev4] *******************************************************************************************
changed: [node1]
TASK [dev5] *******************************************************************************************
changed: [node1]
TASK [dev6] *******************************************************************************************
changed: [node1]
TASK [dev7] *******************************************************************************************
changed: [node1]
TASK [dev8] *******************************************************************************************
changed: [node1]
PLAY RECAP ********************************************************************************************
node1 : ok=9 changed=8 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
在node1上查看是否成功
[root@node1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 10.2G 0 rom
nvme0n3 259:7 0 2G 0 disk
├─nvme0n3p1 259:8 0 476M 0 part
│ └─vg1-lv1 253:4 0 1.2G 0 lvm /mount_data
├─nvme0n3p2 259:9 0 476M 0 part
│ └─vg1-lv1 253:4 0 1.2G 0 lvm /mount_data
└─nvme0n3p3 259:10 0 475.9M 0 part
└─vg1-lv1 253:4 0 1.2G 0 lvm /mount_data
[root@node1 ~]# ll /mount_data/data.txt
-rw-r--r--. 1 root root 0 Nov 19 06:07 /mount_data/data.txt