在虚拟机中快速搭建 Ansible 跟 Ceph 环境

文章目录

[隐藏]

  • 虚拟机配置
  • 安装过程
    • 1. 改 hostname 跟 hosts 文件
    • 2. 添加用户
    • 3. 无密码 ssh 登录
  • 安装 Ansible
    • 1. 从包管理工具安装
    • 2. 修改 Ansible 配置文件
    • 3. 验证&&测试:
  • Ceph deploy 节点安装
    • 1. 从包管理工具安装
  • Ceph 节点安装准备
    • 1. 安装 ntp
    • 2. 安装依赖
    • 3. 开放端口
  • ceph-mon 安装
    • 1. 添加 mon 节点
    • 2. 修改配置文件
    • 2. 安装 ceph 节点
    • 3. 初始化 mon 节点
  • ceph osd 节点安装
    • 1. 查看集群 uuid
    • 2. 安装 osd
    • 3. 查看集群健康状况

在上一篇文章 Vagrant 单机快速模拟集群 https://imquanquan.net/archives/Vagrant-single-machine-fast-simulation-cluster.html 中,介绍了如何在本机中,快速利用 Vagrant 虚拟机管理工具快速起四台虚拟机来模拟集群,这篇文章将利用这些虚拟机来搭建一个 Ansible 跟 Ceph 的集群环境。

虚拟机配置

以上是各虚拟机节点的配置情况。四各节点内存都是 512 M,CPU 一核,系统 Dabian 9。

安装过程

1. 改 hostname 跟 hosts 文件

改 hostname 跟 hosts 有利于识别节点还有可以让节点之间靠 hostname 来通信。

创建虚拟机的时候已经设好了 hostname,把下面一段加入每个节点的 /etc/hosts 即可:

10.1.0.101    node1  10.1.0.102    node2  10.1.0.103    node3  10.1.0.104    deploy  

2. 添加用户

下一件要做的就是,让添加部署的时候要用的用户了。在每个节点都执行:

sudo useradd -d /home/test -m test  sudo echo "test ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/test  sudo chmod 0440 /etc/sudoers.d/test  sudo passwd test  

还顺便添加了无密码 sudo 的权限

3. 无密码 ssh 登录

添加部署节点 deploy 对 node 的无密码 ssh 登录,以搭建 Ansible 然后可以批量对 node 执行操作。在 deploy 执行:

su test  ssh-keygen  cat /home/test/.ssh/id_rsa.pub  

三下回车生成密钥对,然后拷贝 /home/test/.ssh/id_rsa.pub 文件的内容到各个 node 节点:

su test  mkdir ~/.ssh  vi ~/.ssh/authorized_keys  sudo chmod 600 ~/.ssh/authorized_keys  

编辑 ~/.ssh/config 文件:

Host node1  User test  Port 22    Host node2  User test  Port 22    Host node3  User test  Port 22  
安装 Ansible

以下操作无特殊说明都在 deploy 节点进行操作。

1. 从包管理工具安装

sudo apt update && sudo apt install ansible  

2. 修改 Ansible 配置文件

在 /etc/ansible/hosts 文件加入:

[ceph-deploy]  localhost  ansible_connection=local      [ceph-node]  node1  node2  node3  

3. 验证&&测试:

ansible all -m ping  
Ceph deploy 节点安装

1. 从包管理工具安装

添加 release key,软件源。这里安装的是 jewel 版本的 ceph:

wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -  echo deb http://download.ceph.com/debian-jewel/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list  

更新,安装:

sudo apt-get update && sudo apt-get install ceph-deploy  
Ceph 节点安装准备

1. 安装 ntp

修改时区:

ansible all -a "cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime" --sudo  

建议在所有 Ceph 节点上安装 NTP 服务(特别是 Ceph Monitor 节点),并跟同一个 ntp 服务器进行时间同步,以免因时钟漂移导致故障:

ansible all -a   "apt update" --sudo  ansible all -a   "apt install ntp -y" --sudo  

编辑 ntp 配置文件:

vi ntp.conf    restrict cn.pool.ntp.org  server cn.pool.ntp.org  

分发,重启服务:

ansible all -m copy -a "src=/home/test/ntp.conf dest=/etc/ntp.conf" --sudo  ansible all -a "systemctl restart ntp" --sudo  

2. 安装依赖

安装 python-minimal:

ansible all -a "apt -y install python-minimal -y" --sudo  

3. 开放端口

ansible all -a "iptables -A INPUT -i eth0 -p tcp -s 10.1.0.0/24 --dport 6789 -j ACCEPT" --sudo  ansible all -a "iptables -A INPUT -i eth0 -p tcp -s 10.1.0.0/24 --dport 6800:7300 -j ACCEPT" --sudo  ansible all -a "iptables-save" --sudo  
ceph-mon 安装

1. 添加 mon 节点

mkdir ceph-cluster && cd ceph-cluster  ceph-deploy new node1 node2 node3  

2. 修改配置文件

修改 ceph.conf 文件,添加:

# osd 节点个数  osd_pool_default_size = 3  # osd 节点最小个数  osd_pool_default_min_size = 1  # ceph 公共网络  public network = 10.1.0.0/24  

2. 安装 ceph 节点

使用华中科大镜像源安装:

ansible all -a "wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -" sudo  ceph-deploy install --repo-url http://mirrors.ustc.edu.cn/ceph/debian-jewel/ node1 node2 node3  

3. 初始化 mon 节点

ceph-deploy mon create-initial  ceph-deploy admin  node1 node2 node3  
ceph osd 节点安装

1. 查看集群 uuid

集群的 uuid 就是这个 ceph 集群的唯一标识,后面要用:

cat ceph.conf    [global]  fsid = 88fc281e-b9d0-4de3-b662-eaf3bef46943  mon_initial_members = node1, node2, node3  mon_host = 10.1.0.101,10.1.0.102,10.1.0.103  auth_cluster_required = cephx  auth_service_required = cephx  auth_client_required = cephx    osd_pool_default_size = 3  osd_pool_default_min_size = 1  public network = 10.1.0.0/24  

其中 88fc281e-b9d0-4de3-b662-eaf3bef46943 就是 uuid

2. 安装 osd

ssh 到各个节点,执行以下命令:

mkdir /home/test/osd0  sudo chown ceph: /home/test/osd0/  sudo ceph-disk prepare --cluster ceph   --cluster-uuid 88fc281e-b9d0-4de3-b662-eaf3bef46943 --fs-type  ext4 /home/test/osd0/  sudo ceph-disk activate /home/test/osd0/  

以上命令是在 node1 上执行的,请将 uuid 替换成自己的,–fs-type 是 ext4,请换成自己的类型。然后将 osd0 替换掉对应节点的 osd 编号。

3. 查看集群健康状况

当所有节点都安装完成,可以在任一节点执行以下命令查看集群健康状况:

ceps -s  

原文出处:imquanquan -> https://imquanquan.net/archives/setup-ansible-and-ceph.html

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。