CentOS 7 安装 Ansible

一、 准备工作

系统要求:

一个运行 CentOS 7 (建议更新到最新小版本) 的节点作为 Ansible 控制节点。(192.168.63.134)

一个或多个 CentOS 7 (或其他 Linux) 节点作为 被管理节点。(192.168.63.135)

控制节点需要能通过网络 (SSH) 访问被管理节点。

权限要求:

在控制节点上执行安装需要 root 用户或具有 sudo 权限的用户。

Ansible 默认使用 SSH 连接到被管理节点,需要确保:

控制节点上有一个用户 (例如 ansible_user) 可以 SSH 登录到所有被管理节点。

该用户在被管理节点上拥有执行特权命令的权限 (通常通过配置 sudo 实现,且建议配置免密码 sudo 以获得最佳自动化体验)。

网络连接: 确保控制节点可以访问互联网以下载软件包 (或配置好内部 YUM 仓库)。

二、 安装 Ansible 控制节点

1.更新所有系统软件包

yum update -y 

2.安装 EPEL 仓库 (Extra Packages for Enterprise Linux),提供 Ansible 包

 yum install -y epel-release

3.安装ansbile

yum install -y ansible

4.验证安装

ansible --version

三、 配置 Ansible

主机清单 (Inventory)
  • 核心概念: Ansible 通过 主机清单 知道要管理哪些机器。默认清单文件是 /etc/ansible/hosts

  • 编辑清单文件:

    vim /etc/ansible/hosts
    
    [local]
    127.0.0.1 ansible_connection=local
    
    [webservers]
    127.0.0.1
    192.168.63.135
    
    [docker_hosts]
    127.0.0.1
    192.168.63.135

    四、 设置 SSH 免密登录

    为了让 Ansible 无需手动输入密码即可连接被管理节点,配置 SSH 密钥认证是最佳实践

    在控制节点生成 SSH 密钥对

  • ssh-keygen

    注:按 Enter 接受默认保存位置 (~/.ssh/id_rsa) 和空密码 (或设置强密码)

  • 将公钥复制到被管理节点

    ssh-copy-id 192.168.63.135

    测试

    五、 测试 Ansible 连接

    Ping 模块测试:

    测试所有主机

    ansible all -m ping

    测试特定组 (如 web_servers)

    ansible web_servers -m ping

    测试单个主机

    ansible 192.168.63.135 -m ping

 

六、通过ansible安装docker

创建一个名为 install_docker.yml 的 Playbook 文件

---
- name: Install Docker on CentOS
  hosts: docker_hosts
  become: true
  tasks:
    - name: Install yum-utils
      yum:
        name: yum-utils
        state: present

    - name: Add Docker CE repository
      yum_repository:
        name: docker-ce
        description: Docker CE Repository
        baseurl: http://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable
        gpgcheck: no

    - name: Install Docker CE
      yum:
        name: docker-ce-20.10.9-3.el7
        state: present

    - name: Create /etc/docker directory
      file:
        path: /etc/docker
        state: directory

    - name: Configure Docker daemon.json
      copy:
        content: |
          {
            "exec-opts": ["native.cgroupdriver=systemd"]
          }
        dest: /etc/docker/daemon.json

    - name: Start and enable Docker service
      systemd:
        name: docker
        state: started
        enabled: true

在控制节点上,使用以下命令执行 Playbook

ansible-playbook install_docker.yml
  • name:任务的名称,用于描述该任务的作用。

  • hosts:指定要执行任务的目标主机组。

  • become: true:表示使用 sudo 权限执行任务。

  • task: 包含一系列要执行的任务。

    • yum 模块:用于安装或管理 yum 软件包。

    • yum_repository 模块:用于添加 yum 仓库。

    • file 模块:用于创建目录。

    • copy 模块:用于将内容复制到指定文件。

    • systemd 模块:用于管理系统服务,如启动、停止、启用服务等

 

测试发现两台主机全部安装好docker

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值