OpenCloud OS 和欧拉操作系统 上安装并配置 Ansible

1.安装 Ansible

在控制节点(通常是您的主机)上安装 Ansible:

sudo yum  install wget 
sudo wget https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/a/ansible-9.2.0-1.el8.noarch.rpm
yum install  ansible-9.2.0-1.el8.noarch.rpm

2.配置节点

2.1确保节点 node1 和node2上已安装 SSH 服务器

在节点上(node1),确保 SSH 服务器已安装并正在运行:

sudo yum install openssh-server -y
sudo systemctl enable openssh
sudo systemctl start openssh

2.2配置 SSH 密钥

在控制节点上生成 SSH 密钥(如果还没有):

ssh-keygen -t rsa -b 2048

然后将公钥复制到节点 node1和 node2:

ssh-copy-id user@node1_ip_address
ssh-copy-id user@node2_ip_address

3.配置 Ansible 主机文件

在控制节点上编辑 /etc/ansible/hosts 文件,添加 node1 和node2的信息:

[nodes]
node1 ansible_host=node1_ip_address ansible_user=user
node2 ansible_host=node2_ip_address ansible_user=user

备注:替换 node1_ip_address 为 node1 的实际 IP 地址,替换 user 为连接到 node1 时使用的用户名。

3.1如果您的控制节点上没有 /etc/ansible/hosts 文件

在控制节点上,使用以下命令创建 /etc/ansible/hosts 文件:

sudo mkdir -p /etc/ansible
sudo touch /etc/ansible/hosts
vim   /etc/ansible/hosts

4.测试连接

可以单独测试连接,以确保配置正确:

ansible nodes -m ping

如果一切配置正确,您应该能够看到 node1 和node2返回 pong,表明 Ansible 已成功连接到 node1 和node2。

5.创建简单的 Ansible Playbook

创建一个简单的 Ansible Playbook 来测试连接和执行命令:

- hosts: nodes
  become: true
  become_user: root
  tasks:
    - name: Uninstall runc
      yum:
        name: runc
        state: absent
      ignore_errors: yes

    - name: Install Docker packages
      yum:
        name: docker-ce,docker-ce-cli,containerd.io
        state: present

    - name: Ensure Docker service is started
      systemd:
        name: docker
        state: started
        enabled: true
        
    - name: Copy /etc/docker/daemon.json to nodes
      copy:
        src: /etc/docker/daemon.json
        dest: /etc/docker/daemon.json
        owner: root
        group: root
        mode: '0644'
        
    - name: Reload systemd manager configuration
      command: systemctl daemon-reload

    - name: Ensure Docker service is restarted
      systemd:
        name: docker
        state: restarted
        enabled: true
    
     - name: Disable all swap partitions
      command: swapoff -a


    - name: Comment out swap entries in /etc/fstab
      command: sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
    
    - name: Copy k8s.repo to nodes
      copy:
        src: /etc/yum.repos.d/k8s.repo
        dest: /etc/yum.repos.d/k8s.repo

    - name: Install Kubernetes packages
      yum:
        name: kubelet,kubeadm,kubectl
        state: present
        enablerepo: k8s

    - name: Enable and start kubelet service
      systemd:
        name: kubelet
        state: started
        enabled: true

保存为 test_playbook.yml。

1.卸载 runc:

使用 yum 模块来卸载 runc 包,state: absent 表示删除该包。
ignore_errors: yes 可以防止在 runc 未安装时出现错误。

2.copy 模块:

src:指定源文件路径。这个路径是指控制节点上的文件路径,你需要将其替换为实际的文件路径。
dest:目标文件路径,即文件复制到目标节点的位置。
owner:设置目标文件的所有者(root)。
group:设置目标文件的所属组(root)。
mode:设置目标文件的权限(0644 表示所有者可读写,组和其他用户只读)。

3.安装 Docker 包:

这个任务使用 yum 模块安装 Docker、Docker CLI 和 containerd。

4.确保 Docker 服务启动:

这个任务使用 systemd 模块来确保 Docker 服务已启动,并且设置为开机自启。state: started 确保服务正在运行,enabled: true 确保服务在系统启动时自动启动。

5.Reload systemd manager configuration:

使用 command 模块运行 systemctl daemon-reload。此任务在进行任何服务状态更改之前确保 systemd 配置文件被重新加载。

6.创建简单的 Ansible Playbook

运行 Ansible Playbook 来测试连接和配置:

ansible-playbook test_playbook.yml
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑蛋同志

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值