Ansible安装及使用

实验环境

Rocky9.5

一、安装ansible(192.168.10.40)

需要epel源

dnf -y install epel-release

将epel源替换为阿里云镜像站

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*

安装ansible工具

dnf -y install ansible

查看ansible版本信息

ansible --version

二、使用ansible管理(192.168.10.40)

1、查看帮助

ansible --help

查看模块文档帮助

ansible-doc --help

列出所有模块

ansible-doc -l

显示模块的快速使用示例

ansible-doc -s command

2、生成ansible配置文件

cd /etc/ansible/

vim ansible.cfg

ansible-config init --disabled > ansible.cfg

3、修改ansible配置文件

vim ansible.cfg

修改:

关闭主机密钥检查

4、创建主机清单文件

vim myremotehost

添加:

192.168.10.41

5、练习

(1)通过密码使用 Ansible 对 192.168.10.41 执行 ping 模块测试连通性(192.168.10.40)

ansible -i myremotehost -u root -k -m ping 192.168.10.41

命令解析:

-i:指定主机清单文件

-k:让 Ansible 询问 SSH 密码

-m ping:执行 ping 模块

(2)通过密钥使用 Ansible 对 192.168.10.41 执行 ping 模块测试连通性(192.168.10.40)

生成密钥并拷贝

ssh-keygen

ssh-copy-id root@192.168.10.41

ansible -i myremotehost -u root -m ping 192.168.10.41

(3)使用 Ansible在 192.168.10.41 上以 root 用户执行 cat /root/a.txt

192.168.10.41:

echo "hello" > a.txt

192.168.10.40:

ansible -i myremotehost -u root -m command -a "cat /root/a.txt" 192.168.10.41

命令解析:

-a "cat /root/a.txt" 执行命令(command 模块是默认的,可以省略 -m command)

(4)使用 Ansible在 192.168.10.41 上以 user1 用户执行 cat /root/a.txt

192.168.10.41:

创建user1用户并设置密码

useradd user1

passwd user1

192.168.10.40:

ansible -i myremotehost -u user1 -k -b -K -m command -a 'cat /root/a.txt' 192.168.10.41

命令解析:

-b(--become):让 Ansible 尝试 sudo 提权

-K:提权密码

因为user1用户没有sudo权限

192.168.10.41:

将user1用户添加到wheel组中

usermod -aG wheel user1

groups user1

192.168.10.40:

ansible -i myremotehost -u user1 -k -b -K -m command -a 'cat /root/a.txt' 192.168.10.41

192.168.10.41:

让 user1 能够无需密码使用 sudo 执行cat /root/a.txt

visudo

取消注释

192.168.10.40:

ansible -i myremotehost -u user1 -k -b -K -m command -a 'cat /root/a.txt' 192.168.10.41

ansible -i myremotehost -u user1 -k -b -m command -a 'cat /root/a.txt' 192.168.10.41

(5)使用ansible默认主机清单文件执行命令(192.168.10.40)

在主机清单文件中添加主机

vim /etc/ansible/hosts

末尾添加:

#单台主机语法

192.168.10.41

#分组主机语法

[web]

192.168.10.41

#添加多台连续的主机范围语法

[webservices]

192.168.10.[41:50]

以 root 用户身份在 192.168.10.41 主机上执行 cat /root/a.txt

ansible -u root -a "cat /root/a.txt" 192.168.10.41

以 root 用户身份在 web 主机组上执行 cat /root/a.txt

ansible -u root -a "cat /root/a.txt" web

三、扩展无交互ssh免密

(1)删除之前的密钥(192.168.10.40、192.168.10.41)

rm -rf .ssh/

(2)生成密钥(192.168.10.40)

ssh-keygen

(3)创建主机清单文件添加主机(192.168.10.40)

vim hosts

添加:

[all]

192.168.10.41

(4)编写Ansible Playbook 文件用于在远程主机上配置 SSH 免密登录(公钥认证)(192.168.10.40)

vim ssh.yml

添加:

---

- hosts: all

  become: yes

  tasks:

    - name: "确保 ~/.ssh 目录存在"

      ansible.builtin.file:

        path: /root/.ssh

        state: directory

        mode: "0700"

    - name: "部署 SSH 公钥"

      ansible.builtin.authorized_key:

        user: root

        key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"

        state: present

        manage_dir: yes

(5)运行 Ansible Playbook(192.168.10.40)

ansible-playbook -i hosts ssh.yml -k

首次运行时输入 SSH 密码

(6)验证(192.168.10.40)

ansible -u root -m ping 192.168.10.41

### Ansible 安装教程 #### 一、安装Ansible 对于Redhat/Centos Linux而言,由于Ansible位于epel源内,因此需先安装epel源再进行Ansible安装[^1]。 ```bash yum -y install epel-release yum -y install ansible ``` 上述命令会自动完成Ansible及其依赖包的下载与安装过程[^3]。 #### 二、配置管理节点和远程主机间的连接 为了实现自动化运维任务,在成功安装之后,还需确保管理节点能够无障碍地访问目标机器。这通常涉及到SSH密钥对的创建以及分发公钥至各台被控服务器上,从而建立无需密码验证即可登录的状态。 #### 三、自定义Ansible行为 通过调整`ansible.cfg`文件内的参数选项可以改变Ansible的工作模式。此配置文件可能存在于多个位置,按照优先级顺序依次为: - 环境变量指定路径下的ANSIBLE_CONFIG; - 当前项目根目录下名为`./ansible.cfg`的本地化设定; - 用户家目录里的隐藏文件`.ansible.cfg`; - `/etc/ansible/ansible.cfg`作为全局默认配置项存在; 当以上任意一处未找到有效配置时,则采用内置的标准设置运行程序[^4]。 ### 基本用法示例 假设已经完成了必要的前期准备工作,下面给出几个简单的例子来展示Ansible的强大功能。 测试连通性: ```bash ansible "webservers&dbservers" -m ping # 或者使用正则表达式匹配组名 ansible "~(web|db)servers" -m ping ``` 这两条指令分别向属于`webservers`或`dbservers`群组的目标发送ping请求以确认其在线状态[^2]。 执行shell命令: ```bash ansible all -a "/bin/echo hello" ``` 这条语句将在所有已知主机上打印字符串“hello”。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值