1.创建⼀个名为 /home/greg/ansible/hwreport.yml 的 playbook ,它将在所有受管节点上⽣成含 有以下信息的输出⽂件 /root/hwreport.txt :
清单主机名称
以 MB 表示的 总内存⼤⼩
BIOS 版本
磁盘设备 vda 的⼤⼩
磁盘设备 vdb 的⼤⼩
输出⽂件中的每⼀⾏含有⼀个 key=value 对。
您的 playbook 应当:
从 http://materials/hwreport.empty 下载⽂件,并将它保存为 /root/hwreport.txt
使⽤ 正确的值更改 /root/hwreport.txt
如果硬件项不存在,相关的值应设为 NONE
get_url
模块:get_url
模块用于从远程URL下载文件到目标主机。
参数解释:
url
:要下载的远程文件的URL。
dest
:本地主机上保存下载文件的路径。
force参数 : 当远程主机的目标路径中已经存在同名文件,并且与ansible主机中的文件内容不同时,是否强制覆盖,可选值有yes和no
lineinfile:模块用于在文件中查找特定的行,并对其进行修改或添加。
参数解释:
path
:要修改的文件路径。
line
:要添加或修改的行内容。
regexp参数 : 使用正则表达式匹配对应的行,当替换文本时,如果有多行文本都能被匹配,则只有最后面被匹配到的那行文本才会被替换,当删除文本时,如果有多行文本都能被匹配,这么这些行都会被删除。
单引号直接输出内部字符串,不解析特殊字符
在双引号中,字符串中的变量会被解析并替换为其对应的值,同时可以使用转义字符。
执行:
验证:
按照下⽅所述,创建⼀个 Ansible 库来存储⽤户密码:
库名称为 /home/greg/ansible/locker.yml
库中含有两个变量,名称如下:
pw_developer ,值为 Imadev
pw_manager ,值为 Imamgr
⽤于加密和解密该库的密码为 whenyouwishuponastar
密码存储在⽂件 /home/greg/ansible/secret.txt 中
验证:可以发现已经被加密了