ansible 第一次练习

该博客介绍了如何使用Ansible构建学习环境,包括设置主机名、配置扩展源、建立主机间免密登录和创建主机组。然后通过创建一个Shell脚本`adhoc.sh`,演示了如何使用Ansible ad-hoc命令为每个受控节点配置两个不同的YUM仓库,这两个仓库都需要验证GPG签名并启用。
摘要由CSDN通过智能技术生成

一、构建学习环境:

准备四台机器,并设置主机名

[root@serverb ~]# hostnamectl set-hostname servera
[root@serverb ~]# su -
Last login: Sat Nov 27 21:32:10 CST 2021 on pts/1
[root@servera ~]# 

[root@localhost ~]# hostnamectl set-hostname serverb
[root@localhost ~]# su -
Last login: Sat Nov 27 21:33:21 CST 2021 from 192.168.159.1 on pts/0
[root@serverb ~]# 

[root@localhost ~]#  hostnamectl set-hostname serverc
[root@localhost ~]# su -
Last login: Sat Nov 27 21:07:03 CST 2021 from 192.168.159.1 on pts/0
[root@serverc ~]# 

[root@localhost ~]#  hostnamectl set-hostname serverd
[root@localhost ~]# su -
Last login: Sat Nov 27 21:07:00 CST 2021 from 192.168.159.1 on pts/0
[root@serverd ~]# 

点击xshell的工具中的 “发送键到所有会话” 可实现批量操作

添加标签实现 配置epel扩展源

[root@servera ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

批量操作配置hosts解析

[root@servera ~]# vim + /etc/hosts
[root@servera ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.159.130 servera
192.168.159.131 serverb
192.168.159.132 serverc
192.168.159.133 serverd

servera以root用户配置到所有机器免密钥互信(再次点击xshell工具中“发送键到所有会话”实现关闭)

[root@servera ~]# ssh-keygen -f ~/.ssh/id_rsa -P '' -q
[root@servera ~]# ls ~/.ssh
id_rsa  id_rsa.pub

分发到所有节点(for循环的方式)

[root@servera ~]# for i in server{a..d} 
> do
> ssh-copy-id $i
> done

验证是否分发到所有节点

[root@servera ~]# for i in server{a..d}
> do
> ssh $i hostname
> done
servera
serverb
serverc
serverd

安装所需的软件包(ansible)

[root@servera ~]# yum install ansible -y

创建清单inventory文件/home/student/ansible/inventory,要求如下:

servera属于dev主机组

serverb属于test和balancers主机组

serverc和serverd属于prod主机组

prod主机组属于webservers主机组

创建ansible目录

[root@servera ansible]# cp /etc/ansible/ansible.cfg .
[root@servera ansible]# vim inventory
[root@servera ansible]# cat inventory
[dev]
servera

[test]
serverb

[balancers]
serverb

[prod]
serverc
serverd

[webservers:children]
prod

创建ansible配置文件/home/student/ansible/ansible.cfg,要求如下:

使用/home/ansible/inventory清单文件

角色存放在/home/ansible/roles/ 目录

[root@servera ansible]# touch inventory
[root@servera ansible]# mkdir roles

修改配置文件

[root@servera ansible]# vim ansible.cfg

修改如下:
inventory      = /root/ansible/inventory
roles_path    = /root/ansible/roles
host_key_checking = False

测试

[root@servera ansible]# ansible-inventory --graph
@all:
  |--@balancers:
  |  |--serverb
  |--@dev:
  |  |--servera
  |--@test:
  |  |--serverb
  |--@ungrouped:
  |--@webservers:
  |  |--@prod:
  |  |  |--serverc
  |  |  |--serverd
[root@servera ansible]# ansible all -m ping -o
servera | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}
serverb | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}
serverc | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}
serverd | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}

二、创建一个 shell 脚本名为 adhoc.sh 用以运行 ad-hoc 命令 。为每个受控节点配罝 yum仓库。要求如下:

仓库1 :

Name: RH294_Base

Description: RH294 base software

Base url: http://content.example.com/rhel8.0/x86_64/dvd/BaseOS

需要验证钦件包 GPG 签名

GPG key 在: /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

启用此软件仓库

仓库 2:

Name: RH294_Stream

Description : RH294 stream software

Base url: http://content.example.com/rhel8.0/x86_64/dvd/AppStream

需要验证软件包 GPG 签名

GPG key 在: /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

启用此软件仓库

[root@servera ansible]# vim adhoc.sh 
[root@servera ansible]# cat adhoc.sh
#!/bin/bash
ansible dev -m yum_repository -a 'name=RH294_Base description="RH249 base software" \
            Base url=http://content.example.com/rhel8.0/x86_64/dvd/BaseOS \
            gpgcheck=yes gpgkey=/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release \
            enabled=yes'

ansible dev -m yum_repository -a 'name= RH294_Stream description=" RH294 stream software" \
            Base url=http://content.example.com/rhel8.0/x86_64/dvd/AppStream \
            gpgcheck=yes gpgkey=/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release \
            enabled=yes'

[root@servera ansible]# chmod +x adhoc.sh
[root@servera ansible]# ./adhoc.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个F啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值