【Ansible】—— 组件模块(示例练习)


本次练习环境可参考【Ansible】—— 搭建学习环境以及安装ansible

一、包管理。

1> 为所有被管理机器设置zabbix yum源码
其中baseurl=‘https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/8/x86_64/’

ansible all -m yum_repository -a 'file=zabbix description=zabbix name=zabbix baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/8/x86_64/ gpgcheck=no enabled=yes '

2> 为所有被管理机器安装nginx。

ansible all -m yum -a ‘name=nginx state=latest’

二、服务管理。

1>为所有被管理机器启动nginx并设置开机自启动。

ansible all -m service -a ’name=nginx state=started enabled=yes’

三、用户管理。

1> 为所有被管理机器添加用户组openlab,要求为系统组。

ansible all -m group -a ‘name=openlab system=yes’

2> 为所有被管理机器添加用户bob,要求为系统用户,附加组为openlab。

ansible all -m user -a ‘name=bob system=yes groups=openlab’

3> 为所有被管理机器bob用户生成密钥对。

ansible all -m user -a ‘name=bob generate_ssh_key=yes ssh_key_bits=2048 ssh_key_file=.ssh/id_rsa’

四、文件管理。

1> 为所有被管理机器创建/data目录。

ansible all -m file -a ‘path=/data’

2> 为所有被管理机器/data下创建权限为777的aaa.txt文件。

ansible all -m file -a ‘path=/data/aaa.txt state=file mode=777 ’

3> 为所有被管理机器aaa.txt 文件创建软链接文件,软链接名为 aaa_link.txt。

ansible all -m file -a ‘path=/data/aaa_link.txt state=link src=/data/aaa.txt’

4> 将Ansible管理主机的/etc/hosts文件拷贝至被管理机器/opt目录。

ansible all -m copy-a ‘ src=/etc/hosts dest=/opt/ ’

5> 将Ansible管理主机上的nginx包解压至被管理机器/opt目录。

ansible all -m unarchive -a ‘ src=nginx-1.17.8.tar.gz dest=/opt/ ’

6> 配置所有被管理机器SELinux为 enforcing mode。

ansible all -m lineinfile -a ‘path=/etc/selinux/config regexp=”^SELINUX” line=SELINUX=permissive’

7> 将http://nginx.org/download/nginx-1.17.8.tar.gz下载到所有被管理机器/opt目录。

ansible all -m get_url-a “ url=http://nginx.org/download/nginx-1.17.8.tar.gz dest=/opt/ ”

8>将Ansible管理主机/data目录推送到目标主机的/opt目录下,使用此模块需要先安装rsync服务,并删除不存在的文件,使两边的内容一样。

ansible all -m yum -a “ name=rsync state=latest ”
ansible all -m synchronize -a “ src=/data/ dest=/opt/ archive=yes delete=yes”

五、系统管理模块。

1> 每天8点钟进行nginx的/usr/share/nginx/html备份。

ansible all -m cron -a “ name=’cron dump’ hour=8 minute=0 job=[ -d /bak ] || mkdir /bak; tar /bak/nginx-1.17.8.tar.gz /usr/share/nginx/html’ ”

2> 删除以上计划任务。

ansible all -m cron -a 'name=cron_dump state=absent'

六、防火墙管理。

1> 配置允许http服务并立即生效。

ansible all -m service -a 'name=firewalld state=started enabled=true'
ansible all -m firewalld -a 'service=http permanent=true immediate=true state=enabled'

2> 配置允许tcp 80端口并立即生效。

ansible all -m firewalld -a 'port=80/tcp permanent=true immediate=true state=enabled'

3> 配置富规则:允许本网段用户访问web应用。

ansible all -m firewalld -a 'rich_rule="rule family=ipv4 source address=192.168.118.0/24 service name=http accept" permanent=true immediate=true state=enabled'

七、系统信息模块。

1>查看目标主机的一些信息。

ansible all -m setup

八、磁盘管理。

前提:事先为被管理机器添加一块5G硬盘。

1> 使用parted模块创建一个500M主分区。

ansible all -m parted -a 'device=/dev/nvme0n2 number=1 part_end=500MiB state=present'

2> 使用parted模块创建一个类型为lvm的1G分区。

ansible all -m parted -a 'device=/dev/nvme0n2 number=2 part_start=500MiB part_end=1.5GiB flags=lvm state=present'

3> 使用lvg模块利用上面的lvm类型分区创建一个名为myvg的卷组。

ansible all -m lvg -a 'pvs=/dev/nvme0n2p2 vg=myvg'

4> 使用lvol模块在myvg卷组上创建一个名为mylv的逻辑卷,大小为500M。

ansible all -m lvol -a 'vg=myvg lv=mylv size=500M'

5> 使用filesystem模块为mylv逻辑卷创建xfs文件系统。

ansible all -m filesystem -a 'dev=/dev/myvg/mylv fstype=xfs force=yes'

6> 为被管理机器创建挂载点/tools。

ansible all -m file -a 'path=/tools state=directory'

7> 挂载mylv到/tools,并设置开机自动挂载。

ansible all -m mount -a 'src=/dev/myvg/mylv path=/tools fstype=xfs state=present'

温馨提示:

后面的命令语句中,外面和里面的单双引号区别,为了方便理解,以系统管理模块的第一小题示例(下面两个命令不同之处用红色标记):

正确示例:

“ name=cron dump hour=8 minute=0 job=’[ -d /bak ] || mkdir /bak; tar /bak/nginx-1.17.8.tar.gz /usr/share/nginx/html’ ”

错误示例:

“ name=cron dump hour=8 minute=0 job=’[ -d /bak ] || mkdir /bak; tar /bak/nginx-1.17.8.tar.gz /usr/share/nginx/html’ ”

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值