前期环境准备

环境基于ansible剧本

主要作用

  1. 配置管理
    • Ansible 可以自动化地配置和管理服务器的状态,包括安装软件包、配置文件管理、用户和权限设置等。
  2. 应用程序部署
    • Ansible 可以自动化地部署应用程序,从代码库的拉取、依赖安装到应用程序的启动和配置,简化了复杂的部署过程。
  3. 任务自动化
    • Ansible 可以自动化日常运维任务,如备份、日志轮转、监控配置等,减少人为错误,提高工作效率。
  4. 多平台支持
    • Ansible 支持多种操作系统和云平台,包括 Linux、Windows、macOS,以及 AWS、Azure、GCP 等云服务提供商。
  5. 无代理架构
    • Ansible 通过 SSH 连接到目标节点,无需在目标节点上安装任何代理软件,简化了管理和维护。
  6. 编排
    • Ansible 可以编排复杂的 IT 任务,跨多个系统和环境执行一系列步骤,确保任务按顺序执行并保持一致性。

安装

yum -y install epel*
yum -y install ansible

免密

作用
  • 日志和审计
    • 一致的时间戳对于日志记录和审计是至关重要的。不同服务器上的日志条目需要统一的时间基准,方便事件的追踪和问题的排查。
  • 数据一致性
    • 分布式系统和数据库集群依赖于精确的时间同步来确保数据一致性。例如,事务处理和数据复制需要准确的时间戳。
  • 安全性
    • 许多安全协议和认证机制依赖于准确的时间。例如,Kerberos 认证协议使用时间戳来防止重放攻击。
  • 调度和自动化任务
    • 计划任务(如 cron 作业)和自动化脚本依赖于系统时间来按预定时间执行。如果时间不同步,可能导致任务执行失败或错过执行时间。
  • 网络协议
    • 一些网络协议(如 NTP、TLS)需要准确的时间来确保正确的操作和安全性。
部署
# 生成免密
ssh-keygen

# 编写免密脚本
[root@k8s-master ~]# vim ssh_key_send.sh 
#!/bin/bash

# 下载连接工具
yum -y install sshpass

# 远程主机列表,换成你自己的主机 IP 地址--ip可以写多个
HOSTS="10.100.40.252 10.100.40.253 10.100.40.254"

# 本地公钥文件路径,换成你自己的公钥文件路径
PUBLIC_KEY_FILE=~/.ssh/id_rsa.pub

# 遍历远程主机
for host in ${HOSTS}; do
    # 将本地公钥文件复制到远程主机的 authorized_keys 文件中--更换自己定义的密码
    echo "Kunyue@123" | sshpass -p 'Kunyue@123' ssh-copy-id -o StrictHostKeyChecking=no -i ${PUBLIC_KEY_FILE} ${host}
done

时间同步

作用
  • 日志和审计
    • 一致的时间戳对于日志记录和审计是至关重要的。不同服务器上的日志条目需要统一的时间基准,方便事件的追踪和问题的排查。
  • 数据一致性
    • 分布式系统和数据库集群依赖于精确的时间同步来确保数据一致性。例如,事务处理和数据复制需要准确的时间戳。
  • 安全性
    • 许多安全协议和认证机制依赖于准确的时间。例如,Kerberos 认证协议使用时间戳来防止重放攻击。
  • 调度和自动化任务
    • 计划任务(如 cron 作业)和自动化脚本依赖于系统时间来按预定时间执行。如果时间不同步,可能导致任务执行失败或错过执行时间。
  • 网络协议
    • 一些网络协议(如 NTP、TLS)需要准确的时间来确保正确的操作和安全性。
部署
[root@localhost ~]# vim check_time.sh
#!/bin/bash

#对时
# 关闭防火墙
#systemctl stop firewalld
#setenforce 0
# 下载软件
yum -y instal ntpdate
# 查看当前时区
timedatectl
# 列出可用时区
#timedatectl list-timezones
# 修改上海时区
timedatectl set-timezone Asia/Shanghai
# 验证修改是否生效
timedatectl
# 对时
ntpdate ntp.aliyun.com
echo "对时成功,当前时间为:" 
date +'%F %H:%M:%S'


# 定义主机组
[root@k8s-master ~]# vim time
[all]
10.100.40.252
10.100.40.253
10.100.40.254

# 配置yaml文件
[root@k8s-master ~]# vim time.yaml
---
- name: 更新 time
  hosts: all
  become: yes
  tasks:
    - name: copy time script to remote host
      copy:
        src: /root/check_time.sh
        dest: /root/check_time.sh
        owner: root
        group: root
        mode: 0755

    - name: execute time script
      shell: bash /root/check_time.sh
      args:
        chdir: /root

# 启动命令
ansible-playbook -i /root/time time.yaml 

挂载数据盘

#创建目录
mkdir /data
#分区
fdisk /dev/sdb1
#格式化
mkfs.xfs -t ext4 /dev/sdb1
mount /dev/sdb1 /data
# 永久挂载
vim /etc/fstab
/dev/sdb1 /data xfs defaults 0 0    #添加