ansible安装与配置

自定义环境

角色 主机名 ip地址 组名

控制主机 server.example.com 192.168.157.100 server

受控主机1 node1.example.com 192.168.157.134 node1

受控主机2 node2.example.com 192.168.157.135 node2

多台主机配置主机名并且确保多台主机能够通过主机名互访

vim /etc/hosts //控制主机配置本地DNS

hostnamectl set-hostname server.example.com //改名

hostnamectl set-hostname node1.example.com

安装ansible

1、删除多余的(yum配置)源文件

[dm@server ~]$ cd /etc/yum.repos.d/

[dm@server yum.repos.d]$ ll

-rw-r--r--. 1 root root 136 Dec 30 16:50 redhat.repo //仅保留此文件

2、配置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

3、配置epel

yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm

[dm@server yum.repos.d]$ ll

total 28

-rw-r--r--. 1 root root 112 Dec 30 16:49 base.repo

-rw-r--r--. 1 root root 214 Dec 30 17:04 Centos-stream.repo

-rw-r--r--. 1 root root 1692 Dec 30 17:03 epel-modular.repo

-rw-r--r--. 1 root root 1326 Dec 30 17:03 epel.repo

-rw-r--r--. 1 root root 1791 Dec 30 17:03 epel-testing-modular.repo

-rw-r--r--. 1 root root 1425 Dec 30 17:03 epel-testing.repo

-rw-r--r--. 1 root root 136 Dec 30 16:50 redhat.repo

sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*

sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*

yum install ansible -y

ansible --version

[dm@server /]$ ansible --version

ansible [core 2.13.5]

config file = /etc/ansible/ansible.cfg

configured module search path = ['/home/zx/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']

ansible python module location = /usr/lib/python3.9/site-packages/ansible

ansible collection location = /home/zx/.ansible/collections:/usr/share/ansible/collections

executable location = /usr/bin/ansible

python version = 3.9.14 (main, Dec 5 2022, 13:41:22) [GCC 8.5.0 20210514 (Red Hat 8.5.0-17)]

jinja version = 3.1.2

libyaml = True

案例一:控制主机和受控主机通过root用户通过免密验证方式远程控住受控主机实施对应任务

root下免密登陆

[root@server ~]# ssh-keygen -t RSA

# ssh-copy-id -i node1 //发送密钥

# ssh-copy-id -i node2

验证:

[root@server /]# ssh node1

Activate the web console with: systemctl enable --now cockpit.socket

This system is not registered to Red Hat Insights. See https://cloud.redhat.com/

To register this system, run: insights-client --register

Last login: Fri Dec 30 17:41:23 2022

[root@node1 ~]#

[root@server /]# ssh node1 hostname

node1.example.com

案例二:控制主机连接受控主机通过普通用户以免密验证远程控住受控主机实施特权指定操作。

普通用户的免密登陆实现

[dm@server ~]$ ssh-keygen -t RSA

$ ssh-copy-id -i node1

$ ssh-copy-id -i node2

验证:

[dm@server /]$ ssh node1

Activate the web console with: systemctl enable --now cockpit.socket

This system is not registered to Red Hat Insights. See https://cloud.redhat.com/

To register this system, run: insights-client --register

Last login: Fri Dec 30 18:51:37 2022 from 192.168.157.100

[dm@node1 ~]$

[dm@server /]$ ssh node1 hostname

node1.example.com

实现特权指定操作:

[dm@server /]$ ssh node1 sudo useradd user1

此时会报错,因为受控主机中没有该普通用户的权限

修改权限:

[root@node1 zx]# vim /etc/sudoers

## Allow root to run any commands anywhere

root ALL=(ALL) ALL

dm ALL=(ALL) NOPASSWD: ALL //添加部分

## Allows members of the 'sys' group to run networking, software,

## service management apps and more.

# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

## Allows people in group wheel to run all commands

%wheel ALL=(ALL) ALL

[dm@server /]$ ssh node1 sudo useradd user1

[dm@server /]

[root@node1 zx]# id user1

uid=1001(user1) gid=1001(user1) groups=1001(user1)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值