linux——ansible实验

要求

0.进入servera进行准备工作,做一些清理

  1)停止httpd服务,清除httpd软件包、配置文件、主页文件

  2)清理/etc/hosts文件中的内容,只保留最上面默认的两行

     (127.0.0.1和::1这两行)

1.根据之前的剧本改造

  0)还在之前的/work工作目录下

  1)清单

     确保servera在newweb组

  2)项目文件目录

     建立目录/work/files,存放ansible工作相关文件

     提前编辑好httpd.conf放到files目录里

  3)变量目录和文件

     在工作目录中,建立变量目录varfile

     在varfile目录中新建变量文件vars

  4)变量文件vars内容

     包含以下变量和对应值:

web_pkg

httpd

fw_pkg

firewalld

web_svc

httpd

fw_svc

cfg_src

files/httpd.conf

cfg_dest

/etc/httpd/conf/httpd.conf

web_root

/var/www/html/

  5)编写剧本(使用刚定义好的变量)

  5.1)使用dnf模块,确保web_pkg和fw_pkg指定的软件包被安装

  5.2)将cfg_src指定的文件,放到客户机的cfg_dest位置

       并确保文件属于root账户组,权限644

  5.3)在web_root指定的客户机目录,创建index.html文件

       index.html中包含:客户机的主机名和IP地址

       (获取客户机的facts信息并写入)

  5.4)确保服务启动

       web_svc和fw_svc

       立刻启动,并开机自动启动

  5.5)配置防火墙

       确保防火墙放行web_svc指定的服务

       立即生效,且写入配置文件(永久生效)

  6)对变量文件加密

     使用ansible-vault对变量文件var加密,使用密码redhat

     密码写入密码文件files/pwd,确保文件仅root账户可读写

  7)执行剧本

  8)探索

     刚才清除了客户机/etc/hosts文件内容

     是否可以让ansible读取客户机facts,并填充hosts文件

     把客户机的IP和对应主机名,填充进去

实验过程

0.工作目录

ansible的配置文件

files,要给客户机的文件,全放里头

varfile,变量文件房里头

host,是清单inventory

其他

facts.yml,查看客户机的所有facts,留着,回头有用

1.变量文件

web的软件包和服务名一样,web_pkg_svc赋值httpd

防火墙的软件包,fw_pkg

防火墙要放行的服务名,web_fw_svc

web的配置文件源,cfg_src

web的配置文件,放到客户机的哪里,cfg_dest

web的工作目录,web_root

web配置文件所属用户、组、权限

cfg_own,cfg_grp,fmode

2.变量文件需要加密

2.1)先建立密码文件

2.2)用这个密码文件,去加密刚才的变量文件

命令ansible-vault,选项

  encrypt,加密

  --vault-password-file,指定密码文件

2.3)加密后的变量文件,vim或cat看一下

打开以后,或者cat以后,只能看到一堆加密后的字符

看不到源文件内容的

如果要看源文件,需要解密……

用于加密的密码文件,看情况,是否要再加密后删除

密码文件需要限制权限,如果自己记住密码,也可以删了……

而且,之后,执行playbook的时候,可以使用交互式输入密码

可以不指定密码文件

3.准备要给web的配置文件

4.看剧本

开头,剧本名字

操作的主机

指定变量文件

开始tasks

第一个task

  用了dnf模块,装软件包

  用变量指定俩包,httpd,firewalld

第二个task

  用copy模块

  把web的配置文件复制到客户机指定目录

  并且改所属和权限

第三个task

  还是用copy模块

  但是,是生成一个文件,index.html主页文件,在指定的目录产生

  不需要提前先创建这个文件,会自动新建

  content部分,和书里参考不太一样

在咱自己这个环境里,有可能default_ipv4这个fact是空的

需要从别的位置,去取IP地址

于是用了:

  ansible_facts

    ens160

      ipv4

        address

第四个task

  启用防火墙服务

  没干别的……

第五个task

  并没有继续启动web服务

  配置防火墙

放行web服务的端口

  防火墙,是否放行服务,和目标服务本身的状态配置没关系

最后一个task

  最后拉起web服务

5.执行这个剧本

要用vault的选项,使用了交互式提供密码,没使用密码文件

如果要详细过程,加选项 -v、-vv、-vvv

6.看一下web主页内容

所以,上面剧本里,fact外面的( ),就只是括号……

7.如果要修改已加密的变量文件,需要重新解密、加密

  • 28
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值