Ansible安装

发布于:2025-07-10 ⋅ 阅读:(21) ⋅ 点赞:(0)

Ansible简介

Ansible 是一款开源的自动化运维工具,由 Red Hat 公司开发并维护。它主要用于配置管理、应用部署、任务自动化和持续交付。Ansible 采用基于 YAML 的语法(称为 Playbook),通过 SSH 协议与目标主机通信,无需在被管理节点上安装客户端,仅需 Python 环境即可运行。

核心特点

无代理架构
Ansible 通过 SSH 或 WinRM(Windows 系统)直接管理节点,无需在被控端安装额外代理程序,降低了部署和维护成本。

幂等性
Ansible 的模块设计确保操作重复执行时结果一致,避免因多次运行导致系统状态异常。

模块化设计
提供丰富的内置模块(如文件管理、包安装、服务控制等),也支持用户自定义模块扩展功能。

Playbook 编排
通过 YAML 文件定义自动化任务流程,可读性强,易于版本控制。例如:

- name: Install Nginx
  hosts: web_servers
  tasks:
    - name: Ensure Nginx is installed
      apt:
        name: nginx
        state: present

适用场景

  • 配置管理:统一管理服务器配置(如 /etc/hosts、用户权限等)。
  • 应用部署:自动化部署多台服务器的应用程序。
  • 云资源管理:与 AWS、Azure 等云平台集成,动态创建和配置资源。
  • 持续交付:与 CI/CD 工具(如 Jenkins)结合,实现自动化测试和发布。

与其他工具对比

  • 与 Puppet/Chef 相比:Ansible 无需客户端,学习曲线更低。
  • 与 SaltStack 相比:两者均使用 YAML,但 Ansible 社区更活跃,文档更丰富。

Ansible 的轻量化和易用性使其成为中小型团队自动化运维的首选工具。

Centos 7.9安装Ansible

Ansible在CentOS 7的默认存储库中不可用,需要启用EPEL(Extra Packages for Enterprise Linux)存储库。

yum install epel-release
yum clean all
yum makecache
sudo yum install ansible
ansible --version

配置Ansible

默认配置文件位于/etc/ansible/ansible.cfg,库存文件(Inventory)位于/etc/ansible/hosts。可根据需要修改这些文件以适应环境。

mkdir -p ~/ansible		# 创建一个工作目录


cat > ~/ansible/ansible.cfg << EOF		# 创建ansible配置文件
[defaults]
inventory = ~/ansible/hosts
remote_user = root
host_key_checking = False
EOF

cat > ~/ansible/hosts << EOF		# 创建Inventory文件hosts
[all]
192.168.0.2
192.168.0.3
 
[master]
192.168.0.1
 
[newhosts]
192.168.0.4
EOF

配置SSH免密码登录设置

ssh-keygen -t rsa -b 2048		# 生成一个主机密钥

ansible all -m authorized_key -a "user=root key='{{ lookup('file', '/root/.ssh/id_rsa.pub') }}' path=/root/.ssh/authorized_keys manage_dir=no" --ask-pass -c paramiko		# 将密钥发送至受控主机

Ansible 全局配置

sed -i "s@#host_key_checking = False@host_key_checking = False@g" /etc/ansible/ansible.cfg
sed -i "s@#log_path = /var/log/ansible.log@log_path = /var/log/ansible.log@g" /etc/ansible/ansible.cfg
sed -i "s@#private_key_file = /path/to/file@private_key_file = /root/.ssh/id_rsa@g" /etc/ansible/ansible.cfg

测试Ansible

使用以下命令测试连接:

ansible all -m ping

可选:使用pip安装最新版本

如果需要最新版本的Ansible,可以通过pip安装:

sudo yum install python-pip
sudo pip install ansible

注意:使用pip安装可能会与系统包管理器产生冲突,建议在虚拟环境中使用。


网站公告

今日签到

点亮在社区的每一天
去签到