Ansible自动运维————实验
创始人
2024-06-01 08:23:49
0

0、创建新的虚拟机,使用镜像RHEL8.5,要求/boot目录为512N,/home目录为1Gb,交换空间为2Gb,其他空间给)目录。

1、将该主机作为 Ansible 控制节点,克隆该虚拟机,将克隆的虚拟机作为受控节点,Ansible 仓库路径为 http://47.108.86.156/rhel8/ansible29/ansible-2.9-for-rhel-8-x86_64-rpms/

2、在控制节点上创建角色exam,该角色将在受控节点上完成以下任务∶

2.1,创建本地共享目录/home/materials,其所属组为sysadms, sysadms组成员对目录有修改目录里文件内容、长列表查看内容和进入该目录的权限,除此之外其它用户没有任何权限。
2.2.将系统光盘挂在载/mnt目录下,并且开机自动挂载,将控制节点本地的 rpm. repo 文件作为受控节点的yum源配置文件内容,该仓库无需开后gpg检查,配置完成后,安装httpd软件包,后动该服务并让该服务开机自启动。
2.3,创建一个sysadms组,创建两个用户 natasha和 harry 以该组为附属组,创建用户sarah,并且 sarah使用非交互式shell,该用户也不属于sysadms组,三个用户的密码都是compedel。
2.4.在根目录下创建一个目录test,在该目录中每个用户创建的文件只能自己有权限删除,其他用户没有权限删除,但是该目录对于hehe用户用所有的权限,该目录当中有一个可执行程序configtest.sh,该文件是系统/usr/bin/touch。
可执行程序的副本,该程序任何人都可以执行,但是每个人通过该程序创建的文件所有者都为redhat。
2.5、给受控节点添加sata接口、大小为10Gb大小和nvme接口、大小为20Gb大小的两块磁盘,完成以下需求∶

〉使用这两块磁盘创建卷组名称为testgroup 的卷组,使用该卷组创建testlv名称的逻辑卷,该逻辑卷大小为25Gb,并将该逻辑卷格式化为xfs格式,开机自动挂载到/exam目录。

〉使用testgroup卷组创建swaplv逻辑卷,大小为1Gb,作为交换空间并开机自动启用。

解题

0、创建新的虚拟机,使用镜像RHEL8.5,要求/boot目录为512N,/home 目录为 1Gb,交换空间为26b,其他空间给╱目录。

1、将该主机作为 Ansible控制节点,克隆该虚拟机,将克隆的虚拟机作为受控节点,Ansible 仓库路怪为 httpd://47.108.86.156/rhel8/ansible29/ansible-2.9-for-rhel-8-x86_64-rpms/

先挂载仓库下载dnf ,再挂载ansible仓库下载ansible

[root@localhost ansible]# yum install dnf

[root@localhost ansible]# dnf install ansible

2、在控制节点上创建角色exam,该角色将在受控节点上完成以下任务:

[root@localhost ansible]# ansible-galaxy init exam //创建exam角色

2.1,创建本地共享目录/home/materials,其所属组为sysadms, sysadms组成员对目录有修改目录里文件内容、长列表查看内容和进入该目录的权限,除此之外其它用户没有任何权限。

- name: exam  #创建组group:                name: sysadmsstate: present     #创建- name: file #设置组权限file:group: sysadmspath: /home/materialsmode: '2770'state: directory   

2.2.将系统光盘挂在载/mnt目录下,并且开机自动挂载,将控制节点本地的rpm.repo文件作为受控节点的 yum源配置文件内容,该仓库无需开启gpg检查,配置完成后,安装httpd软件包,后动该服务并让该服务开机自启动。

- name:  mount and turn on auto mountmount:src: /dev/sr0       #挂载设备path: /mnt          #挂载点fstype: iso9660   #文件系统类型state: present
- name: install yum repocopy:src: /dev/yum.repos.d/rpm.repodest: /etc/yum.repos.d/
- name: httpd installd      #安装httpd软件包yum:name: httpdstate: latest          #最新版本- name: start httpd serviceservice:name: httpdenabled: true        #开机自启动  state: started

2.3,创建一个sysadms组,创建两个用户 natasha和 harry 以该组为附属组,创建用户 sarah,并且 sarah使用非交互式shell,该用户也不属于sysadms组,三个用户的密码都是compede

- name: create group sysadms    #创建sysadms组group:name: sysadmsstate: present- name: create user natesha and harry #创建两个用户,为sysadms组附属组并设置密码user:name: "{{item.user}}"group: sysadmspassword: "{{'compedel'}}"loop:- {user: natasha}- {user: harry}    //会出现警告,但不是错误,不要紧- name: create user sarah  #创建用户 sarah,并且 sarah使用非交互式shell,该用户也不属于sysadms组,并设置密码user:name: sarahshell: /user/bin/falsepassword: "{{'compedel'}}"

2.4,在根目录下创建一个目录 test,在该目录中每个用户创建的文件只能自己有权限删除,其他用户没有权限删除,但是该目录对于hehe用户用所有的权限,该目录当中有一个可执行程序configtest.sh ,该文件是系统/usr/bin/touch 可执行程序的副本,该程序任何人都可以执行,但是每个人通过该程序创建的文件所有者都为redhat。

- name: create directory test     #创建目录test并设置权限file:path: /teststate: directorymode: '1777'- name: set permissions        #设置hehe用户的权限acl:path: /testentity: heheetype: userpermissions: rwxstate: present- name: user hehe #创建用户heheuser:name: hehe- name: owner  #创建所有者user:name: redhat- name: configtest.shcopy:src: /usr/bin/touchdest: /test/configtest.showner: redhatmode: '4777'

copy模块的作用就是拷贝文件,将ansible主机上的文件拷贝到远程主机中。

src参数 :用于指定需要copy的文件或目录

dest参数 :用于指定文件将被拷贝到远程主机的哪个目录中,dest为必须参数

content参数 :当不使用src指定拷贝的文件时,可以使用content直接指定文件内容,src与content两个参数必有其一,否则会报错。

force参数 : 当远程主机的目标路径中已经存在同名文件,并且与ansible主机中的文件内容不同时,是否强制覆盖,可选值有yes和no,默认值为yes,表示覆盖,如果设置为no,则不会执行覆盖拷贝操作,远程主机中的文件保持不变。

backup参数 : 当远程主机的目标路径中已经存在同名文件,并且与ansible主机中的文件内容不同时,是否对远程主机的文件进行备份,可选值有yes和no,当设置为yes时,会先备份远程主机中的文件,然后再将ansible主机中的文件拷贝到远程主机。

owner参数 : 指定文件拷贝到远程主机后的属主,但是远程主机上必须有对应的用户,否则会报错。

group参数 : 指定文件拷贝到远程主机后的属组,但是远程主机上必须有对应的组,否则会报错。

mode参数 : 指定文件拷贝到远程主机后的权限,如果你想将权限设置为"rw-r--r--",则可以使用mode=0644表示,如果你想要在user对应的权限位上添加执行权限,则可以使用mode=u+x表示。

2.5、给受控节点添加sata接口、大小为10Gb大小和nvme接口、大小为20Gb大小的两块磁盘,完成以下需求∶

注意:在虚拟机在关机状态下设置

〉使用这两块磁盘创建卷组名称为testgroup 的卷组,使用该卷组创建testlv 名称的逻辑卷,该运辑卷大小为25Gb,并将该逻辑卷格式化为xfs格式,开机自动挂载到/exam目录。

- name: create lvg testgroup #使用这两块磁盘创建卷组名称为testgrouplvg:vg: testgrouppvs: /dev/nvme0n2,/dev/sdastate: present  #可不写,默认是present- name: create lvol testlv #使用testgroup卷组创建testlv名称的逻辑卷,并设置大小lvol:vg: testgrouplv: testlvsize: 25Gstate: present  #可不写,默认是present- name: filesystem xfs  #逻辑卷格式化为xfsfilesystem:fstype: xfsdev: /dev/mapper/testgroup-testlv- name: mkdir /examfile:path: /examstate: directory- name: mount  #自动挂载到/exam目录mount:src: /dev/mapper/testgroup-testlvpath: /examfstype: xfsstate: present

〉使用testgroup卷组创建swaplv逻辑卷,大小为 1Gb,作为交换空间并开机自动后用。

- name: create lvol swaplv  #使用testgroup卷组创建testlv名称的逻辑卷,并设置大小lvol:vg: testgrouplv: swaplvsize: 1G- name: filesystem swap  #逻辑卷格式化为swapfilesystem:fstype: swapdev: /dev/mapper/testgroup-swaplv- name: mountmount:src: /dev/mapper/testgroup-swaplvpath: /examfstypy: swapstate: present

lvg模块 创建卷组

vg 定义卷组名

state {present 创建,absent 删除}

pvs 指定物理卷

pesize 定义pe大小

lvol模块 创建逻辑卷

lv 定义逻辑卷名

size 定义逻辑卷大小

vg 空间来自哪个卷组

state{present 创建,absent 删除}

force=yes 强制执行

filesystem模块

• 用于格式化,也就是创建文件系统

• 常用选项:

– fstype:指定文件系统类型

– dev:指定要格式化的设备,可以是分区,可以是逻辑卷

mount模块

• 用于挂载文件系统

• 常用选项:

– path:挂载点。如果挂载点不存在,自动创建。

– src:待挂载的设备

– fstype:文件系统类型,

– state:mounted表示永久挂载 ,设备将被主动安装,并在fstab中适当配置。如果挂载点不存在,则将创建挂载点。

unmounted 设备将卸载而不更改fstab。

present仅指定设备将在fstab中配置﹐不会触发或要求挂载。

absent表示设备支架的条目将从fstab中删除还将卸载设备并删除挂载点。

remounted指定当您想强制刷新挂载本身时,设备将被重新安装。

看案例:

运行playbook:

验证语法是否有误: ansible-playbook --syntax-check playbook的名称

运行playbook: ansible-playbook playbook的名称

相关内容

热门资讯

安卓系统手机应用锁,安全无忧的... 你有没有发现,现在手机里的秘密越来越多,是不是也跟小秘密一样,想要找个地方藏起来呢?没错,今天就要来...
安卓系统书院源app,安卓系统... 你有没有发现,手机里的安卓系统越来越智能了?今天,我要给你介绍一个特别有意思的书院源app,它可是安...
安卓系统8.1平板推荐,安卓8... 你有没有想过,拥有一款性能卓越、体验流畅的安卓系统8.1平板,简直就是移动办公和娱乐的完美搭档?没错...
谷歌不给华为安卓系统,探索替代... 你知道吗?最近科技圈可是炸开了锅!谷歌突然宣布,不给华为提供安卓系统了!这可不仅仅是两家公司之间的小...
选择安卓系统原因调查,揭秘安卓... 你有没有想过,为什么那么多人会选择安卓系统呢?是不是好奇他们到底看中了安卓的哪些“小秘密”?今天,就...
安卓系统的安全证书,守护移动安... 你知道吗?在咱们这个科技飞速发展的时代,手机已经成了我们生活中不可或缺的好伙伴。而说起手机,安卓系统...
谷歌安卓系统挣钱吗,如何通过它... 你有没有想过,那个无处不在的谷歌安卓系统,它到底是怎么赚钱的呢?没错,就是那个让我们的手机、平板、智...
GALGAME安卓换苹果系统,... 你有没有想过,那些在安卓手机上玩得如痴如醉的GALGAME,竟然也能在苹果系统上大放异彩?没错,就是...
华为宣布摆脱安卓系统,迈向自主... 哇,你知道吗?最近华为可是闹出了一个大新闻!那就是他们宣布要摆脱安卓系统,自己研发一套全新的操作系统...
安卓车机系统hcn,智能驾驶的... 你有没有发现,现在越来越多的汽车开始搭载智能化的车机系统了?这不,安卓车机系统HCN(Harmony...
超大平板安卓系统,创新体验与无... 你有没有想过,在这个科技飞速发展的时代,拥有一块超大平板电脑是多么酷炫的事情啊!想象那宽广的屏幕,无...
电脑装安卓系统步骤,电脑安装安... 你有没有想过,把安卓系统装在你的电脑上,是不是就像给电脑换了个新衣裳,瞬间变得时尚又实用呢?没错,今...
安卓系统视频存储软件,高效管理... 手机里的视频越来越多,是不是感觉存储空间不够用了?别急,今天就来给你安利几款安卓系统视频存储软件,让...
安卓系统如何连接奔驰,安卓系统... 你有没有想过,你的安卓手机和奔驰车之间也能来个亲密接触呢?没错,就是那种无缝连接的感觉,让你的手机和...
安卓系统emoji表情很少,探... 你知道吗?在手机世界里,emoji表情可是沟通的利器,它能让我们的聊天更加生动有趣。但是,你知道吗?...
安卓系统的德州游戏,刺激竞技体... 你有没有发现,安卓手机上的游戏世界越来越精彩了?尤其是那些德州游戏,简直让人停不下来!今天,就让我带...
xbox360安卓系统,探索跨... 你有没有想过,家里的老Xbox 360竟然也能变身成为安卓系统的超级玩家呢?没错,就是那个曾经陪伴我...
安卓系统怎么找云端,而是通过安... 你有没有想过,你的安卓手机里那些珍贵的照片、文件和笔记,其实都可以存放在云端,随时随地都能访问呢?没...
安卓手机系统更原装,深度解析原... 你有没有发现,用安卓手机的时候,有时候感觉系统就像是你从小到大最熟悉的那件衣服,穿在身上,舒服又自在...
安卓系统8怎样退回,安卓8.0... 你有没有遇到过这种情况:手机更新了安卓系统8,结果发现新系统里的某些功能让你觉得不适应,或者某些操作...