wordpress discuz建站吴桥做网站
2026/1/12 12:21:15 网站建设 项目流程
wordpress discuz建站,吴桥做网站,建设一个看电影的网站,万网域名续费查询为什么选择Ansible#xff1f; 想象一下这样的场景#xff1a;你需要同时在10台服务器上安装Nginx#xff0c;配置防火墙#xff0c;部署代码。传统方式是一台台SSH登录操作#xff0c;耗时且容易出错。Ansible就是为解决这种批量服务器管理而生的自动化工具。 与其他自…为什么选择Ansible想象一下这样的场景你需要同时在10台服务器上安装Nginx配置防火墙部署代码。传统方式是一台台SSH登录操作耗时且容易出错。Ansible就是为解决这种批量服务器管理而生的自动化工具。与其他自动化工具相比Ansible的主要优势· 无代理通过SSH管理无需在被管理节点安装客户端· 简单易学基于YAML语法接近自然语言· 幂等性多次执行同一任务结果一致· 模块化设计丰富的模块满足各种需求Ansible核心架构[控制节点]↓ (SSH)[被管理节点1] [被管理节点2] [被管理节点3]控制节点运行Ansible命令的机器需要安装Python被管理节点被Ansible管理的服务器只需要支持SSH和Python环境准备与安装1. 控制节点安装Ubuntu示例# 更新包索引sudo apt update# 安装Ansiblesudo apt install ansible -y# 验证安装ansible --version# 应显示ansible 2.9.x# 安装Tree可选方便查看目录结构sudo apt install tree -y2.配置SSH免密登录# 生成SSH密钥如果还没有ssh-keygen -t rsa -b 2048# 复制公钥到被管理节点需要输入密码ssh-copy-id userserver1ssh-copy-id userserver2# 测试连接ssh server1 hostname # 应无密码登录并返回主机名3.创建Ansible工作目录mkdir -p ~/ansible-project/{inventory,group_vars,host_vars,playbooks,roles}cd ~/ansible-projecttree .# 应显示# .# ├── group_vars# ├── host_vars# ├── inventory# ├── playbooks# └── roles基础配置清单文件详解Ansible通过清单文件Inventory 定义管理哪些主机。创建 inventory/hosts# inventory/hosts - 主机清单文件# 按环境分组[web_servers]web1 ansible_host192.168.1.101 ansible_userubuntuweb2 ansible_host192.168.1.102 ansible_userubuntu[db_servers]db1 ansible_host192.168.1.111 ansible_userubuntu# 按地理位置分组[shanghai:children]web_servers[beijing:children]db_servers# 所有主机[all_servers:children]web_serversdb_servers# 组变量也可以在group_vars中定义[web_servers:vars]http_port80max_requests_per_child500[db_servers:vars]db_port3306重要概念· [] 定义主机组· ansible_host 指定IP地址· ansible_user 指定连接用户· :children 创建组嵌套· :vars 定义组变量必备的Ad-hoc命令临时命令Ad-hoc命令适合快速执行简单任务无需编写Playbook。1. 基础连接测试# 测试所有主机连通性ansible all -i inventory/hosts -m ping# 测试特定组ansible web_servers -i inventory/hosts -m ping# 测试单个主机ansible web1 -i inventory/hosts -m ping# 使用别名文件简化创建ansible.cfgecho -e [defaults]\ninventory ./inventory/hosts ansible.cfg# 之后可以省略 -i 参数ansible all -m ping2.常用模块示例# 1. 执行shell命令ansible web_servers -m shell -a uptime whoami# 2. 管理服务ansible web_servers -m service -a namenginx statestartedansible web_servers -m service -a namenginx staterestartedansible web_servers -m service -a namenginx statestopped# 3. 管理软件包ansible web_servers -m apt -a namenginx statepresent # Ubuntuansible web_servers -m yum -a namenginx statepresent # CentOS# 4. 文件操作ansible web_servers -m file -a path/tmp/test mode755 statedirectoryansible web_servers -m file -a path/tmp/test.txt statetouchansible web_servers -m file -a path/tmp/test stateabsent # 删除# 5. 复制文件ansible web_servers -m copy -a src./config.txt dest/tmp/config.txt ownerroot mode644# 6. 获取主机信息ansible web_servers -m setup # 收集所有factsansible web_servers -m setup -a filteransible_distribution* # 过滤显示3.高级Ad-hoc用法# 并行执行默认5个并行ansible all -m ping -f 10 # 10个并行# 以特定用户执行ansible all -m shell -a whoami --become --become-userroot# 限制执行主机ansible all -m ping --limit web1ansible all -m ping --limit web_servers:shanghai# 查看模块帮助ansible-doc pingansible-doc -l | grep -i service # 查找模块Ansible配置优化创建ansible.cfg配置文件# ansible.cfg - 主配置文件[defaults]# 清单文件路径inventory ./inventory/hosts# SSH连接设置host_key_checking False # 禁用密钥检查测试环境timeout 10retries 3# 并行设置forks 20 # 并发数# 日志记录log_path ./ansible.log# 性能优化gathering smart # 智能收集factsfact_caching jsonfilefact_caching_connection ./facts_cachefact_caching_timeout 3600# 安全设置sudo_user rootallow_world_readable_tmpfiles False[ssh_connection]# SSH优化ssh_args -o ControlMasterauto -o ControlPersist60s -o Compressionyespipelining True # 提高执行速度control_path %(directory)s/ansible-ssh-%%h-%%p-%%r速查表20个最常用命令# 连接测试ansible all -m ping# 执行命令ansible all -m shell -a 命令# 文件管理ansible all -m file -a path路径 statedirectory/file/absentansible all -m copy -a src源文件 dest目标文件# 包管理ansible all -m apt -a name包名 statepresent/absent/latest # Ubuntuansible all -m yum -a name包名 statepresent/absent/latest # CentOS# 服务管理ansible all -m service -a name服务名 statestarted/stopped/restarted# 用户管理ansible all -m user -a name用户名 statepresent/absent# 权限提升ansible all -m shell -a 需要root的命令 --become总结Ansible的Ad-hoc命令是你的自动化瑞士军刀。记住这些要点1. 从简单开始先用Ad-hoc命令自动化重复任务2. 测试为先使用--check和--diff预览更改3. 逐步复杂当Ad-hoc命令变得复杂时就是时候写Playbook了

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询