一、安装并配置 Ansible, 要求如下 :
1、安装所需的软件包
2、创建静态inventory文件/root/ansible/inventory,要求如下:
servera属于dev主机组
serverb属于test和balancers主机组
serverc和serverd属于prod主机组
prod主机组属于webservers主机组
3、创建ansible配置文件/root/ansible/ansible.cfg,要求如下:
使用/root/ansible/inventory清单文件
角色存放在/rootansible/roles/ 目录
1.安装ansible
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
yum -y install ansible
验证
ansible --version
2.创建静态inventory文件/root/ansible/inventory
mkdir /root/ansible/
vim /root/ansible/inventory
[dev]
servera
[test]
serverb
[balancers]
serverb
[prod]
serverc
serverd
[webservers:children]
prod
3、创建ansible配置文件/root/ansible/ansible.cfg
vim /root/ansible/ansible.cfg
[defaults]
inventory = ./inventory
remote_user = root
ask_pass = false
roles_path = /root/ansible/roles/
创建roles路径:
mkdir /root/ansible/roles
进行简单测试
二、创建一个 shell 脚本名为 adhoc.sh 用以运行 ad-hoc 命令 。为每个受控节点配罝 yum仓库。要求如下:
仓库1 :
Name: Base
Baseurl:使用本地
需要验证钦件包 GPG 签名
GPG key 在:/media/cdrom/RPM-GPG-KEY-redhat-release
启用此软件仓库
仓库 2:
Name:Stream
Baseurl:使用本地
需要验证软件包 GPG 签名
GPG key 在:/media/cdrom/RPM-GPG-KEY-redhat-release
启用此软件仓库
1.先建立控制节点与受控节点之间的免密登录
cd /root/.ssh
ssh-keygen -t rsa -b 2048 -N '' -f key #创建ansible的密钥,密码为空,重命名为key
ssh-copy-id -i key.pub root@192.168.4.200 #把公钥传到web1,web2等等... 有几个被控主机,传几次
在清单文件中完成相应设置
[dev]
servera
[test]
serverb
[balancers]
serverb
[prod]
serverc
serverd
[webservers:children]
prod
[test1]
192.168.4.200
[all:vars]
ansible_ssh_private_key_file="/root/.ssh/key" #添加密钥位置
#部署完成之后测试,是否部署成功
cd /root/ansible
ansible test1 -m ping
书写脚本
vim adhoc.sh
#! /bin/bash
ansible all -m yum_repository -a ' name=base \
baseurl=file:///media/cdrom/BaseOS \
gpgcheck=yes
gpgkey=/media/cdrom/RPM-GPG-KEY-redhat-release\
enable=yes '
ansible all -m yum_repository -a ' name=Stream \
baseurl=file:///media/cdrom/AppStream \
gpgcheck=yes
gpgkey=/media/cdrom/RPM-GPG-KEY-redhat-release\
enable=yes '
yum repolist
ansible test1 -m copy -a 'src=/etc/yum.repos.d/ \
dest=/etc/yum.repos.d \'
yum repolist
给脚本添加执行权限
chmod +x adhoc.sh