部署ansible自动化运维工具-控制Windows系统-和linux系统流程

部署ansible

1.安装ansible、被控主机需要安装python、windows需要配置客户端winrm

1.ansible

cat ansible.cfg(简易文件)

    [defaults]

    host_key_checking = false  #不检测密钥

    inventory = inventory

主机清单
cat inventory

[l_server]   #linux系统

ip地址 ansible_ssh_user=root ansible_ssh_pass='密码' ansible_ssh_port=端口

[w_server]   #windows系统

ip地址 ansible_user=administrator ansible_password=密码 ansible_connection=winrm ansible_winrm_server_cert_validation=ignore  ansible_port=5985

windows系统配置

    需要powershell4.0以上(winserver2012以上)

    get-executionpolicy 查看powershell运行策略 Restricted才可以

    更改策略: set-executionpolicy remotesigned

配置客户端winrm:

    winrm quickconfig                                                 开启winrm服务

    winrm set winrm/config/service/auth  '@{Basic="true"}'            启动远程连接认证

    winrm set winrm/config/service  '@{AllowUnencrypted="true"}'      启动远程连接认证

### 如何在 Windows 上使用 Ansible 尽管 Ansible 的设计初衷是为了 Unix Linux 平台,但它也可以通过特定配置支持 Windows 系统作为目标节点或管理节点。以下是关于如何在 Windows 上设置使用 Ansible 的详细说明。 #### 支持情况 Ansible 只能在基于 POSIX 的操作系统上运行其控制端程序(即控制器),这意味着 **Windows 不可以直接作为 Ansible 控制器**[^3]。然而,可以通过以下方式实现: 1. **使用 WSL (Windows Subsystem for Linux)** 如果您的系统Windows 10 或更高版本,则可以启用并安装 WSL 来提供一个兼容的环境来运行 Ansible。WSL 提供了一个完整的 Linux系统,允许您在其内部执行标准的 Ansible 命令[^2]。 2. **远程管理 Windows 节点** 即使无法直接将 Windows 设置为控制器,仍可将其设为目标节点。这通常依赖于 PowerShell WinRM (Windows Remote Management) 技术来进行通信。具体操作包括: - 安装 Python Ansible 到一台 Linux 主机或者虚拟机中。 - 配置目标 Windows 计算机上的 WinRM 服务以便接受来自 Ansible 的请求[^4]。 #### 步骤概述 为了更清楚地了解整个流程,请参阅下面的关键步骤描述: - **准备控制器**: 在任何支持的操作系统部署Ansible 工具链;推荐的方法是在 Ubuntu 下按照官方文档完成安装过程。 - **WinRM 启动与验证**: 对每台待管治的目标服务器开启必要的网络协议栈组件——主要是指启动 winrm listener,并调整防火墙规则以开放相应端口(默认情况下监听的是 HTTP:5985 HTTPS:5986)。 - **编写 Playbooks**: 创建适合跨平台作业的任务清单文件(playbook),其中应包含针对不同 OS 类型定制化的模块调用逻辑。 ```yaml --- - name: Example playbook demonstrating cross-platform tasks. hosts: all gather_facts: no tasks: - name: Ensure service is running on UNIX-like systems. systemd: name: sshd state: started when: ansible_os_family != "Windows" - name: Start a specific service via PS module on Windows nodes only. win_service: name: Spooler state: started when: ansible_os_family == "Windows" ``` 上述 YAML 片段展示了如何区分对待非 Windows Windows 设备的不同需求。 #### 注意事项 需要注意的是,在实际应用过程中可能会遇到权限不足等问题影响正常功能发挥,因此建议提前做好充分测试工作再投入生产环境中去实践这些方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值