Ansible部署

一、部署环境及前置操作

1、测试环境

注:主机复用原测试环境,主机hostname根据需求调整
硬件环境:N100 x86主机 Proxmox系统
软件环境:Ubuntu 22.04.3 LTS
软件版本:redis-7.4.0.tar.gz
主机环境:主机IP          主机名  192.168.0.150 node1	#Ansible管理节点192.168.0.151 node2	#测试节点192.168.0.152 node3	#测试节点

2、主机IP及主机名调整

#配置静态IP
vi /etc/netplan/00-installer-config.yaml 
#添加以下内容,静态IP根据个人需求调整
network:version: 2renderer: networkdethernets:ens18:addresses: [192.168.0.150/24]   # 静态 IP 和子网掩码dhcp4: false                    # 关闭 DHCProutes:- to: default                 # 默认路由via: 192.168.0.1           # 网关地址nameservers:addresses: [192.168.0.1, 114.114.114.114]  # DNS 服务器
#生效配置
netplan apply     #主机复用原测试环境,主机hostname根据需求调整
#节点1:192.168.0.150 node1
hostnamectl set-hostname node1
#节点2:192.168.0.151 node2
hostnamectl set-hostname node2
#节点3:192.168.0.152 node3
hostnamectl set-hostname node3

3、调整hosts及时间同步

#添加host配置
cat >> /etc/hosts << EOF
192.168.0.150 node1
192.168.0.151 node2
192.168.0.152 node3
EOF
#node节点主机如果是使用其他主机克隆时,注意调整/etc/hosts中127.0.1.1配置,克隆主机默认为原始主机配置#调整系统时区配置
timedatectl set-timezone Asia/Shanghai#安装时间同步工具chrony
apt install chrony -y#添加时间同步源/etc/chrony/chrony.conf
echo "server time1.aliyun.com iburst" >> /etc/chrony/chrony.conf#启动服务
systemctl start chrony
systemctl enable chrony#检查运行状态
chronyc sources -v

4、配置免密登录

#192.168.0.150主机执行
root@node1:/etc/ansible# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:40g2VL66TKcfb0X5l3alhHZscxP2mgOhL075cocK4iA root@node1
The key's randomart image is:
+---[RSA 3072]----+
|        .        |
|       o    .  o |
|      . .  . =. o|
|     .   .. * *.+|
|      + S  = * *+|
|     o = .+ o *oo|
|  E . = =o + ..o.|
|   . = = ++ + .  |
|      =...o+ .   |
+----[SHA256]-----+
#首次配置免密需要手动输入密码
root@node1:/etc/ansible# ssh-copy-id test@192.168.0.151  
root@node1:/etc/ansible# ssh-copy-id test@192.168.0.152 

二、Ansible部署

1、Ansible安装

Ansible安装方式有2种,具体安装方式如下:

1.1、使用apt安装

在线安装:

#联网情况下
apt update
apt install ansible -y

离线安装:

#离线环境
#在可联网主机创建相同环境架构本地环境/虚拟机下载安装包及依赖
mkdir -p /data/ansible_download/ #目录根据实际进行调整
cd /data/ansible_download/
#下载软件包及依赖
apt download ansible $(apt-rdepends ansible | grep -v "^ " | grep -v "^lib")
root@node1:/data/ansible_download# ll
total 17128
drwxr-xr-x 2 root root     4096 Jun  3 22:13 ./
drwxr-xr-x 3 root root     4096 Jun  3 22:13 ../
-rw-r--r-- 1 root root 17530700 Apr 29  2021 ansible_2.10.7+merged+base+2.10.8+dfsg-1_all.deb
#安装,如果有其他deb安装包,添加到命令
apt install ./ansible_2.10.7+merged+base+2.10.8+dfsg-1_all.deb -y

安装验证:

#安装验证
root@node1:/data/ansible_download# ansible --version
ansible 2.10.8config file = Noneconfigured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']ansible python module location = /usr/lib/python3/dist-packages/ansibleexecutable location = /usr/bin/ansiblepython version = 3.10.12 (main, Feb  4 2025, 14:57:36) [GCC 11.4.0]
1.2、使用pip安装

在线安装:

#联网情况下
apt update
apt install python3-pip -y
pip3 install ansible
#默认源安装较慢时
pip3 install ansible --index-url https://pypi.tuna.tsinghua.edu.cn/simple

离线安装:

#离线环境
#在可联网主机创建相同环境架构本地环境/虚拟机下载安装包及依赖
mkdir -p /data/ansible_download/ #目录根据实际进行调整
cd /data/ansible_download/
#下载软件包
pip3 download ansible
#如果默认源下载较慢,可以使用
#国内常用镜像源
#清华:https://pypi.tuna.tsinghua.edu.cn/simple
#阿里云:https://mirrors.aliyun.com/pypi/simple/
#腾讯云:https://mirrors.cloud.tencent.com/pypi/simple
#华为云:https://repo.huaweicloud.com/repository/pypi/simple
pip3 download ansible --index-url https://pypi.tuna.tsinghua.edu.cn/simple
#安装
pip3 install --no-index --find-links=./ ansible

安装验证:

#安装验证
root@node1:/data/ansible_download# ansible --version
ansible [core 2.17.12]config file = Noneconfigured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']ansible python module location = /usr/local/lib/python3.10/dist-packages/ansibleansible collection location = /root/.ansible/collections:/usr/share/ansible/collectionsexecutable location = /usr/local/bin/ansiblepython version = 3.10.12 (main, Feb  4 2025, 14:57:36) [GCC 11.4.0] (/usr/bin/python3)jinja version = 3.0.3libyaml = True

2、Ansible配置文件

2.1、主配置文件

位置(按优先级从高到低):

  • 当前目录下的 ./ansible.cfg

  • 用户家目录下的 ~/.ansible.cfg

  • 系统全局的 /etc/ansible/ansible.cfg

创建方法

# 创建默认配置文件
mkdir -p /etc/ansible/
mkdir -p /etc/ansible/{inventory,group_vars,host_vars,roles,files,templates}
touch /etc/ansible/ansible.cfg#生成默认配置(配置较多,使用常用配置项即可)
ansible-config init --disabled > /etc/ansible/ansible.cfg

常用配置内容:

[defaults]
# 安全设置
# 禁用SSH主机密钥检查(测试环境用)
host_key_checking = False# 禁用弃用警告
deprecation_warnings = False# 性能优化
# 并发进程数
forks = 50
# 智能收集facts
gathering = smart
# 缓存facts加速后续执行
fact_caching = jsonfile
fact_caching_connection = /tmp/ansible_facts
# 缓存24小时
fact_caching_timeout = 86400# 路径设置
# 默认库存文件
inventory = /etc/ansible/hosts
# 角色搜索路径
roles_path = /etc/ansible/roles
# 日志记录
log_path = /var/log/ansible.log[privilege_escalation]
# 默认启用权限提升,根据需求配置
become = True
# 使用sudo                 
become_method = sudo
# 提升为root
become_user = root
# 不提示sudo密码
become_ask_pass = False[ssh_connection]
ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s
# 启用管道加速
pipelining = True
2.2、库存文件 (Inventory File)

默认位置/etc/ansible/hosts

创建方法

#以自定义为例
mkdir -p /etc/ansible/
touch /etc/ansible/hosts 

配置内容:

# 简单主机定义
[ubuntu_servers]
192.168.0.151
192.168.0.152 ansible_port=22  # 自定义SSH端口
2.3、主机变量文件

位置:通常在库存文件所在目录的 host_vars/group_vars/ 子目录中

创建方法

mkdir -p /etc/ansible/{host_vars,group_vars}

示例:

# /etc/ansible/group_vars/all.yml
---
ansible_python_interpreter: /usr/bin/python3
timezone: UTC# /etc/ansible/host_vars/web1.example.com.yml
---
http_port: 8080
max_clients: 200
2.4、Ansible Vault 密码文件(可选)

用于加密敏感数据:

#全局存储
echo "my_vault_password" > /etc/ansible/vault_pass.txt
chmod 600 /etc/ansible/vault_pass.txt#用户级存储
#在用户目录下创建
mkdir -p ~/.ansible/
echo "your_vault_password" > ~/.ansible/vault_pass
chmod 600 ~/.ansible/vault_pass
2.5、配置文件优先级

Ansible 按以下顺序查找配置文件:

  1. ANSIBLE_CONFIG 环境变量指定的文件

  2. 当前目录下的 ansible.cfg

  3. 用户家目录下的 ~/.ansible.cfg

  4. /etc/ansible/ansible.cfg

推荐目录结构如下:

ansible_project/
├── ansible.cfg          # 项目级配置
├── inventory/           # 库存目录
│   ├── hosts            # 主库存文件
│   ├── host_vars/       # 主机变量
│   └── group_vars/      # 组变量
├── roles/               # 自定义角色
├── playbooks/           # playbook 文件
└── files/               # 文件资源

验证配置文件:

#测试配置文件目录结构如下
root@node1:/etc/ansible# tree /etc/ansible
/etc/ansible
├── ansible.cfg
├── files
├── group_vars
│   └── all.yml
├── hosts
├── host_vars
├── inventory
├── roles
└── templates
root@node1:/etc/ansible# ansible --version          
ansible [core 2.17.12]config file = /etc/ansible/ansible.cfgconfigured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']ansible python module location = /usr/local/lib/python3.10/dist-packages/ansibleansible collection location = /root/.ansible/collections:/usr/share/ansible/collectionsexecutable location = /usr/local/bin/ansiblepython version = 3.10.12 (main, Feb  4 2025, 14:57:36) [GCC 11.4.0] (/usr/bin/python3)jinja version = 3.0.3libyaml = True
2.6、测试
#免密配置为test用户,直接执行ansible ubuntu_servers -m command -u test -a 'df -h'因配置开启权限提升,会出现执行失败情况,现象如下:
root@node1:/etc/ansible# ansible ubuntu_servers -m command -u test -a 'ls /tmp'
192.168.0.151 | FAILED | rc=-1 >>
Missing sudo password
192.168.0.152 | FAILED | rc=-1 >>
Missing sudo password#处理方式1:可以通过-K参数手动输入密码
root@node1:/etc/ansible# ansible ubuntu_servers -m command -u test -a 'df -h' -K
BECOME password: 
192.168.0.151 | CHANGED | rc=0 >>
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              197M  1.1M  196M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   15G  7.0G  7.0G  51% /
tmpfs                              982M     0  982M   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/sda2                          2.0G  252M  1.6G  14% /boot
tmpfs                              197M  4.0K  197M   1% /run/user/1000
192.168.0.152 | CHANGED | rc=0 >>
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              197M  1.1M  196M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   15G  6.5G  7.5G  47% /
tmpfs                              982M     0  982M   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/sda2                          2.0G  252M  1.6G  14% /boot
tmpfs                              197M  4.0K  197M   1% /run/user/1000#方式2:关闭权限提升配置,编辑ansible.cfg配置,将become=true,改为become=false
root@node1:/etc/ansible# ansible ubuntu_servers -m command -u test -a 'df -h'
192.168.0.151 | CHANGED | rc=0 >>
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              197M  1.1M  196M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   15G  7.0G  7.0G  51% /
tmpfs                              982M     0  982M   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/sda2                          2.0G  252M  1.6G  14% /boot
tmpfs                              197M  4.0K  197M   1% /run/user/1000
192.168.0.152 | CHANGED | rc=0 >>
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              197M  1.1M  196M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   15G  6.5G  7.5G  47% /
tmpfs                              982M     0  982M   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/sda2                          2.0G  252M  1.6G  14% /boot
tmpfs                              197M  4.0K  197M   1% /run/user/1000

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/915804.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/915804.shtml
英文地址,请注明出处:http://en.pswp.cn/news/915804.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智慧教室:科技赋能,奏响个性化学习新乐章

在传统教育模式中&#xff0c;课堂互动的局限性犹如一道无形的枷锁&#xff0c;束缚着学生主动学习的热情与能力。课堂上&#xff0c;往往是教师单向的知识输出&#xff0c;仅有少数学生能获得发言机会&#xff0c;大部分学生只能被动聆听&#xff0c;逐渐在枯燥的学习氛围中丧…

Android埋点实现方案深度分析

埋码是数据驱动业务决策、产品优化、用户行为分析的核心基础&#xff0c;其实现方案的优劣直接影响数据的准确性、完整性、实时性、可维护性以及开发效率。 以下从多个维度对主流方案进行剖析&#xff1a; 一、核心目标与挑战目标&#xff1a; 精准采集&#xff1a; 在用户触发…

万界星空科技铜线/漆包线行业智能化MES系统解决方案

万界星空科技针对铜线及漆包线行业开发的智能化MES系统&#xff0c;专门解决该行业原材料管理复杂、工艺控制严、质量追溯困难等核心痛点。该系统通过数字化手段实现生产全流程的可视化与精准控制&#xff0c;助力企业提升生产效率、降低运营成本并增强市场竞争力。一、行业专属…

Git 完全手册:从入门到团队协作实战(3)

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《C修炼之路》、《Linux修炼&#xff1a;终端之内 洞悉真理…

使用Docker搭建SearXNG搜索引擎

1、安装Docker# 安装Docker https://docs.docker.com/get-docker/# 安装Docker Compose https://docs.docker.com/compose/install/# CentOS安装Docker https://mp.weixin.qq.com/s/nHNPbCmdQs3E5x1QBP-ueA2、安装SearXNG详见&#xff1a; https://docs.searxng.org/admin/inst…

基于pi/4-QPSK扩频解扩和gardner环定时同步的通信系统matlab性能仿真

目录 1.引言 2.算法仿真效果演示 3.数据集格式或算法参数简介 4.算法涉及理论知识概要 4.1 π/4-QPSK 4.2 直接序列扩频与解扩 4.3 Gardner环定时同步 5.参考文献 6.完整算法代码文件获得 1.引言 π/4-QPSK是一种特殊的QPSK调制方式&#xff0c;其相邻符号间的相位跳变…

CGA老年人能力评估师:提升老年生活质量

一、CGA老年人能力评估师是提升老年生活质量的“导航者” 老年生活质量的提升&#xff0c;始于对老年人真实需求的精准把握。CGA老年人能力评估师正是这样一群“导航者”&#xff0c;他们运用CGA老年综合评估系统&#xff0c;深入了解老年人在生理、心理、社会参与等方面的状况…

开源的大语言模型(LLM)应用开发平台Dify

概述Dify 是一个开源的大语言模型&#xff08;LLM&#xff09;应用开发平台&#xff0c;结合了后端即服务&#xff08;Backend-as-a-Service&#xff09;和 LLMOps 的理念&#xff0c;旨在帮助开发者快速构建生产级的生成式 AI 应用。它通过直观的界面、强大的功能和灵活的部署…

RAG(检索增强生成)里的文档管理

RAG&#xff08;检索增强生成&#xff09;是结合检索与生成式 AI 的技术框架。核心逻辑是先从外部知识库精准检索相关信息&#xff0c;再将其作为上下文输入大模型生成回答。技术上依赖检索引擎&#xff08;如向量数据库、BM25&#xff09;、大语言模型&#xff08;如 GPT、LLa…

床上肢体康复机器人的机械结构设计cad【7张】三维图+设计说明书

摘要 近年来&#xff0c;随着人口老龄化问题的加重&#xff0c;常年卧床的老年人数增多&#xff0c;同时因为各种疾病的原因&#xff0c;患肢体功能障碍的人数也在增加。严重影响着患者的生活质量&#xff0c;同时给社会和家庭增加了很多麻烦。他们迫切希望尽快康复&#xff0c…

主要分布在背侧海马体(dHPC)CA1区域(dCA1)的时间细胞对NLP中的深层语义分析的积极影响和启示

时间细胞&#xff08;time cells&#xff09;作为海马体CA1区域中编码时间信息的神经元&#xff0c;其工作机制对自然语言处理&#xff08;NLP&#xff09;中的深层语义分析具有多方面的启示。这些神经元通过整合时空信息、动态竞争机制和序列编码能力&#xff0c;为解决NLP中语…

数字ic后端设计从入门到精通12(含fusion compiler, tcl教学)全定制设计进阶

标准单元库中几种时序单元介绍 C2MOS触发器C2MOS触发器的工作分为两个阶段&#xff1a; 1&#xff09;φ0&#xff08;φ1&#xff09;时&#xff0c;第一个三态驱动器导通&#xff08;三态门主要体现在&#xff0c;此时主级处于求值模式。同时从级处在高阻抗模式&#xff0c;即…

Qt调试技巧与常见错误解决方法

一、调试工具与环境配置 1.1 Qt Creator调试器集成 Qt Creator内置GDB/Lldb调试器&#xff0c;支持断点、单步执行、变量监视等功能。 启动调试&#xff1a;按F5或点击"Debug"按钮断点设置&#xff1a;在代码行号旁点击添加断点调试工具栏&#xff1a;包含继续、暂停…

VRRP技术(虚拟路由器冗余协议)

1. VRRP的概念及应用场景&#xff08;优先级数值越大&#xff0c;越优先&#xff09;VRRP&#xff08;虚拟路由器冗余协议&#xff09;是 IETF&#xff08;互联网工程任务组&#xff09;提出的一种容错协议&#xff0c;主要用于解决局域网中网关单点故障的问题。VRRP 通过把多个…

《每日AI-人工智能-编程日报》--2025年7月23日

介绍&#xff1a;AI&#xff1a;阿里开源通义千问 AI 编程大模型 Qwen3-Coder&#xff1a;7 月 23 日清晨&#xff0c;阿里开源全新的通义千问 AI 编程大模型 Qwen3-Coder&#xff0c;编程能力登顶全球开源模型阵营&#xff0c;并超越 GPT4.1 等闭源模型&#xff0c;比肩全球最…

网安-JWT

认证的方式&#xff1a;sessioncookie、jwt、tokenSession认证机制需要配合Cookie才能实现。由于 Cookie默认不支持跨域访问 &#xff0c;所以&#xff0c;当涉及到前端跨域请求后端接口的时候&#xff0c;需要做 很多额外的配置&#xff0c;才能实现跨域Session认证。JWT(英文…

零基础学编程,编程从入门到精通系列教程,附:编程工具箱之时间计算构件的用法#零基础自学编程 学习计划#新手学编程 高效学习方法

前言&#xff1a; 对于正在学习编程的大学生、IT 人士或是编程爱好者而言&#xff0c;掌握正确的学习方法能让编程学习事半功倍。即便你是初学者&#xff0c;只要通过成百上千个实例练习&#xff0c;也能快速成长为编程高手。 全中文编程工具 易上手的基础特性 安装过程简单且…

Day01_C++编程

01.思维导图02.方法一&#xff1a;#include <iostream> #include <cstring> #include <iostream> using namespace std; class mystring { private:char* buf;int len;public:mystring(const char* str);void copy(const char* ptr);void copy(mystring ptr)…

lammps滚动模拟

大家好,我是小马老师。 本文介绍lammps中模型滚动的设置方法。 模型的滚动需要解决2个问题: (1)设置滚动旋转轴位置和方向,也就是确定沿哪个方向滚动。 (2)原地滚动还是在滚动过程中整体也要移动。 为保证滚动的平稳,旋转轴一般通过模型的质心,需要先计算模型的质…

增强LLM最后隐藏层的意义与效果

LLM 置信度增强:是否可以增强最后的隐藏层(非logits层) 表征工程是提取隐藏层状态表征,LLM的置信度增强是优化的logist数值 要回答“是否可以增强最后的隐藏层(非logits层)以及是否有意义”,需要结合大语言模型的结构特性、你当前的任务(情感分析)以及“隐藏层增强”…