前期环境准备
环境基于ansible剧本
主要作用
- 配置管理:
- Ansible 可以自动化地配置和管理服务器的状态,包括安装软件包、配置文件管理、用户和权限设置等。
- 应用程序部署:
- Ansible 可以自动化地部署应用程序,从代码库的拉取、依赖安装到应用程序的启动和配置,简化了复杂的部署过程。
- 任务自动化:
- Ansible 可以自动化日常运维任务,如备份、日志轮转、监控配置等,减少人为错误,提高工作效率。
- 多平台支持:
- Ansible 支持多种操作系统和云平台,包括 Linux、Windows、macOS,以及 AWS、Azure、GCP 等云服务提供商。
- 无代理架构:
- Ansible 通过 SSH 连接到目标节点,无需在目标节点上安装任何代理软件,简化了管理和维护。
- 编排:
- 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 #添加