配置ansible学习环境实现以下要求:
1.控制主机和受控主机通过root用户通过免密验证方式远程控住受控主机实施对应(普通命令,特权命令)任务
2.控制主机连接受控主机通过普通用户以免密验证远程控住受控主机实施指定(普通命令,特权命令)任务操作。
案例一:控制主机和受控主机通过root用户通过免密验证方式远程控住受控主机实施对应(普通命令,特权命令)任务
1、需要保准三台主机能够互相通信,设置同一种网络模式(nat)
2、配置静态ip地址
[root@localhost ~]# nmcli connection modify ens160 ipv4.addresses 192.168.186.100/24
[root@localhost ~]# nmcli connection modify ens160 ipv4.gateway 192.168.186.2 ipv4.dns192.168.186.2 ipv4.method manualconnection.autoconnect yes
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160
[root@localhost ~]# nmcli connection up ens160
server--192.168.186.100 node1---192.168.186.111 node2---192.168.186.222
3、更改主机名
hostnamectl set-hostname server.example.com
hostnamectl set-hostname node1.example.com
hostnamectl set-hostname node2.example.com
控制主机server:
[root@localhost ~]# hostnamectl set-hostname server.example.com
[root@localhost ~]# bash
[root@server ~]#
受控主机node1:
[root@localhost ~]# hostnamectl set-hostname node1.example.com
[root@localhost ~]# bash
[root@node1 ~]#
受控主机node2:
[root@localhost ~]# hostnamectl set-hostname node2.example.com
[root@localhost ~]# bash
[root@node2 ~]#
4、更改时间
timedatectl set-timezone Asia/Shanghai
[root@node1 ~]# timedatectl set-timezone Asia/Shanghai
[root@node1 ~]# date
2023年 01月 01日 星期日 18:28:24 CST
[root@node1 ~]#
5、安装常用软件工具
配置yum源安装常用软件工具
yum install vim-enhanced net-tools bash-completion -y
[root@server ~]# yum install vim-enhanced net-tools bash-completion -y
正在更新 Subscription Management 软件仓库。
机构
本系统已在权利服务器中注册,但没有接收更新。可使用 subscription-manager 分配订阅。
baseos 2.0 MB/s | 2.7 kB 00:00
AppStream 3.1 MB/s | 3.2 kB 00:00
Extra Packages for Enterprise Linux 9 - x86_64 15 kB/s | 7.8 kB 00:00
Extra Packages for Enterprise Linux 9 - x86_64 3.5 MB/s | 12 MB 00:03
软件包 vim-enhanced-2:8.2.2637-16.el9_0.3.x86_64 已安装。
软件包 net-tools-2.0-0.62.20160912git.el9.x86_64 已安装。
软件包 bash-completion-1:2.11-4.el9.noarch 已安装。
依赖关系解决。
无需任何处理。
完毕!
[root@server ~]#
6、配置centos8基础源
vim /etc/yum.repos.d/base.repo
[AppStream]
name=AppStream
baseurl=https://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/
gpgcheck=0
[BaseOS]
name=AppStream
baseurl=https://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/
gpgcheck=0
7、配置epel
(1)、#yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
(2)、#sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
(3)、#sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
(4)、#yum install ansible -y
(5)、#ansible --version
8、主机--server通过主机名匹配对应连接的受控主机
[root@server ~]# vim /etc/hosts
9、 制作秘钥
[root@server ~]# ssh-keygen -t rsa -P '' -q -f ~/.ssh/id_rsa
向node1、node2发送密钥
node1:
node2:
成功免密登录node1、node2
案例二:控制主机连接受控主机通过普通用户以免密验证远程控住受控主机实施指定(普通命令,特权命令)任务操作。
1、切换普通用户
[root@server home]# su - redhat
[root@node1 ~]# su - wp
[root@node2 ~]# su - redhat
2、 生成密钥
[server@server ~]$ ssh-keygen -t rsa -P '' -q -f ~/.ssh/id_rsa
将密钥给node1的用户,node2一样
3、测试免密配置:
4、控制端主机sudo提权(报错)
5、在受控主机通过/etc/sudoers授权
6、授权成功