ansible 部署基于windows 2008 r2+rsync+alwaysUp(守护进程)

准备:升级PowerShell3.0 及打开WinRM模块 参考文章:http://juestnow.blog.51cto.com/1515305/1875026

下载软件包rsync http://down.51cto.com/data/371729

alwaysUp https://www.coretechnologies.com/products/AlwaysUp/

AlwaysUpCLT https://www.coretechnologies.com/products/AlwaysUp/AlwaysUpCLT/

inno setup http://www.jrsoftware.org/isinfo.php 本机安装制作AlwaysUpCLT 安装包

rsync服务器文件同步使用,alwaysUp 守护进程工具应用程序启动使用 为了安全不提供安装文件

1、ansible 目录结构

├── alwaysUp
│   └── daemon_alwaysup.xml.j2 #alwaysup添加apps模板
├── AlwaysUpCLT.iss # AlwaysUpCLT 安装包 官方提供的是zip包 ansible 替换文件问题很多做成exe静默安装更快
├── alwaysUp.retry # ansible 运行产生的hosts文件
├── alwaysUp.yml # 使用ansible 导入alwaysup模板文件
├── hosts # 服务器ip存放文件
├── roles
│   ├── alwaysup 
│   │   ├── defaults
│   │   ├── files
│   │   │   ├── AlwaysUpCLT.exe #客户机安装使用
│   │   │   └── AlwaysUp_Installer.exe #客户机安装使用
│   │   ├── handlers
│   │   ├── meta
│   │   ├── tasks
│   │   │   └── main.yml #ansible 安装守护进程文件
│   │   ├── templates
│   │   └── vars
│   └── cwRsyncServer
│       ├── defaults
│       ├── files
│       │   ├── cwRsyncServer_4.1.0_Installer.exe # rsync 服务器安装文件
│       │ 
│       ├── handlers
│       ├── meta
│       ├── tasks
│       │   └── main.yml #ansible 安装rsync文件
│       ├── templates
│       │   └── rsyncd.conf.j2 # rsync 服务器配置文件
│       └── vars
├── site.retry # ansible 运行产生的hosts文件
├── site.yml  # ansible 安装守护进程及rsync服务器使用
└── win_env.bat # 环境变量文件 ansible 操作 windows 环境变量很麻烦为了通
site.yml 说明:
- hosts: ‘{{host}}‘ #变量安装服务器别名
 # gather_facts: False # 是否获取客户机的setup变量 部署软件建议注释掉
  vars:
    rsync_port: 9999 # rsync 服务器端口
    rsync_node: test # 访问rsync路径标签
    rsync_path: c/test # rsync 服务器配置路径
    sync_file: c:\test # 创建rsync 服务器数据路径
    rsync_ip: 192.168.0.210 , 192.168.7.233 # rsync 服务器允许访问IP
    win_env: C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\ # 使用ansible 操作环境变量默认系统环境变量每台服务器环境变量不一样不通用本案例没使用
    rsync_env: C:\"Program Files (x86)"\ICW\bin # rsync path变量
    alwaysup_env: C:\"Program Files (x86)"\AlwaysUp # AlwaysUp  path 变量
  roles:
    - cwRsyncServer #ansible 安装 cwRsyncServer  
    - alwaysup #ansible 安装alwaysup 
  tasks:
    - name: evn
      #win_environment: #ansible 操作Windows 环境变量   
        #state: present
        #name: Path
        #value: ‘{{ win_env }};"{{ rsync_env }}";"{{ alwaysup_env }}"‘
        #level: machine 
     # when: ( rsync_path_register.stat.exists == False ) and (alwaysup_path_register.stat.exists == False)
      script: win_env.bat {{ rsync_env }} {{ alwaysup_env }} # 使用脚本操作系统环境变量
      when: ( rsync_path_register.stat.exists == False ) and (alwaysup_path_register.stat.exists == False)

alwaysup 安装文件说明

- win_stat: path=‘C:/Program Files (x86)/AlwaysUp‘ #获取是否安装路径
  register: alwaysup_path_register
- win_stat: path=‘C:/temp‘ #获取是否创建 C:/temp
  register: temp_path_register
- name: create c:\temp to  client
  raw:  ‘CMD /C "mkdir  c:\temp "‘ # 创建C:/temp 如果没有
  when: temp_path_register.stat.exists == False
  #copy AlwaysUp_Installer.exe config to client
- win_copy: src={{ item }} dest=c:/TEMP/{{ item }} # 上传文件到客户机c:/TEMP
  with_items:
     - AlwaysUp_Installer.exe
     - AlwaysUpCLT.exe
  when: alwaysup_path_register.stat.exists == False
- name: intsatll AlwaysUp to clien # 安装AlwaysUp 
  raw: c:/TEMP/AlwaysUp_Installer.exe  /sp- /verysilent /norestart
  when: alwaysup_path_register.stat.exists == False
- name: intsatll AlwaysUpCLT to clien # 安装AlwaysUpCLT
  raw: c:/TEMP/AlwaysUpCLT.exe /VERYSILENT -SP
  when: alwaysup_path_register.stat.exists == False
- name: rd c:\temp 删除 c:\temp 文件
  raw: CMD /C ‘del /s /q /f c:\temp\*.*‘
  when: alwaysup_path_register.stat.exists == False

cwRsyncServer 说明

- win_stat: path=‘C:/Program Files (x86)/ICW/bin‘ # 判断是否安装rsync
  register: rsync_path_register
- win_stat: path=‘C:/temp‘ # 判断是否创建 C:/temp
  register: temp_path_register
- name: create c:\temp to  client
  raw:  ‘CMD /C "mkdir  c:\temp" ‘ #没有就创建C:/temp
  when: temp_path_register.stat.exists == False
  #create c:\{{ sync_file }} rsyncserver to clien
- win_file: path={{ sync_file }} state=directory # 创建rsync 数据存放文件夹
  when: rsync_path_register.stat.exists == False
  #copy rsync config to client
- win_copy: src=cwRsyncServer_4.1.0_Installer.exe dest=c:/TEMP/cwRsyncServer_4.1.0_Installer.exe # 上传rsync 安装文件
  when: rsync_path_register.stat.exists == False
- name: intsatll rsyncserver to clien
  raw: CMD /C ‘c:\TEMP\cwRsyncServer_4.1.0_Installer.exe /S‘ # 安装rsync服务 文件名字有改变请修改脚本文件
  when: rsync_path_register.stat.exists == False
  #cp rsyncd.conf # 上传rsync 配置文件
- win_template:
    src=\‘#\‘" /C ‘del /s /q /f c:\temp\*.*‘ # 删除 c:\temp 文件
  when: rsync_path_register.stat.exists == False

alwaysUp.yml 说明

- hosts: ‘{{host}}‘ # host 标签
  #gather_facts: False
  vars:
   daemon_ver: 9.7.2.88 # AlwaysUp 版本好apps xml文件用到 
   daemon_name: notepad # AlwaysUp 友好名字
   daemon_path: C:\Windows\system32\notepad.exe # 服务器启动路径绝对路径
   daemon_parameter:  # 文件启动参数如:.\.\test.ini -d 参数
  tasks:
    - win_file: path=c:/alwaysUp state=directory # 创建appsxml文件存放文件夹
    - win_template: 
         src=\‘#\‘" /daemon_alwaysup.xml.j2 # 上传 apps 文件
         dest: ‘c:/alwaysUp/{{ daemon_name }}_alwaysup.xml‘
    - name: Import "{{ daemon_name }}"_alwaysup.xml
      raw: CMD /C ‘InstallService.exe -xml c:\alwaysUp\{{ daemon_name }}_alwaysup.xml‘ 导入xml 到 alwaysUp 守护进程

rsync 使用简单说明:

上传文件到rsync服务器
cd /d C:\Program Files (x86)\cwRsync\bin
rsync --port=9999 -rvzc --ignore-errors --no-iconv --delete --progress --exclude-from=‘/cygdrive/F/scripts/exclude‘ 排除文件配置   /cygdrive/F/test/ 本地地址  rsync://192.168.1.19/test/ 服务器路径
下载rsync 文件
cd /d C:\Program Files (x86)\cwRsync\bin
rsync --port=9999 -rvzc --ignore-errors --no-iconv --delete --progress --exclude-from=‘/cygdrive/F/scripts/exclude‘ 排除文件配置  rsync://192.168.1.19/test/ 服务器路径  /cygdrive/F/test/ 本地地址 
可以使用Jenkins 推送文件到服务器 也可以使用ansible  拉去文件

AlwaysUp 使用说明:

UninstallService.exe "test" # 删除守护进程apps
InstallService.exe -xml c:\test_alwaysup.xml # 导入apps守护进程
AlwaysUp.exe -start-all-in-current-session # 启动所有程序并显示界面
AlwaysUp.exe -start-all # 启动所有程序
AlwaysUp.exe -restart-all-in-current-session # 重启所有程序
AlwaysUp.exe -start-in-current-session "test" # 启动某个程序并显示界面 如果有
AlwaysUp.exe -start-in "test" #启动摸个程序
AlwaysUp.exe -restart-in-current-session "test" #重启某个程序并显示界面 如果有
AlwaysUp.exe -restart "test" #重启某个程序
AlwaysUp.exe -stop "test" #关闭某个程序
AlwaysUp.exe -stop-all # 关闭所有程序守护进程不在守护

AlwaysUpCLT.iss 说明:

;------------------------------------------------
;
;             AlwaysUpCLT安装脚本
;------------------------------------------------
[Setup]
;公司信息
AppName=AlwaysUpCLTUpCLT
AppVerName=AlwaysUpCLT
AppPublisher=www.coretechnologies.com
AppCopyright=www.coretechnologies.com
AppPublisherURL=www.coretechnologies.com
AppId =www.coretechnologies.com

;版本信息
VersionInfoVersion=6.0.1.0
VersionInfoDescription="AlwaysUpCLTUpCLT"

;安装目录
DefaultDirName=C:\Program Files (x86)\AlwaysUp # 安装路径
DefaultGroupName=AlwaysUpCLTUpCLT

;输出配置
OutputDir= D:\桌面\aa # 打包输出exe 路径
SourceDir= D:\桌面\aa\AlwaysUpCLT # 打包源码路径
OutputBaseFilename=AlwaysUpCLT # 打包生成的exe文件名字

;编译选项
Compression=zip/9 # 压缩比例
SolidCompression=yes

;环境选项
Uninstallable=no
DisableDirPage=yes
CreateUninstallRegKey=no
UsePreviousAppDir=no
[Files]

;AlwaysUpCLT
Source: "AlwaysUpService.exe"; DestDir: "{app}"; Flags: igNoreversion
Source: "InstallService.exe"; DestDir: "{app}"; Flags: igNoreversion
Source: "UninstallService.exe"; DestDir: "{app}"; Flags: igNoreversion
Source: "EventMessageFile.dll"; DestDir: "{app}"; Flags: igNoreversion
Source: "GHCrUtils.dll"; DestDir: "{app}"; Flags: igNoreversion
Source: "XML\*"; DestDir: "{app}\XML\"; Flags: igNoreversion recursesubdirs createallsubdirs
Source: "SanityCheck\*"; DestDir: "{app}\SanityCheck\"; Flags: igNoreversion recursesubdirs createallsubdirs
Source: "Documentation\*"; DestDir: "{app}\Documentation\"; Flags: igNoreversion recursesubdirs createallsubdirs

其它:

使用ansible 安装程序
 ansible-playbook -i hosts site.yml -verbose --extra-vars "host=test(hosts 文件配置节点)"
 导入 alwaysUp 守护进程apps配置文件
  ansible-playbook -i hosts alwaysUp.yml -verbose --extra-vars "host=test daemon_name=calc daemon_path=C:\Windows\System32\calc.exe daemon_parameter=-a" 强制使用外部参数这样就能随机创建启动apps 
  xml 模板文件还可以根据自己情况进行修改添加邮件报警端口监控等等。
  alwaysUp  注册机附带附件建议在本地电脑运行,不用复制到服务器。
  所有脚本放到附件
时间: 2024-10-01 07:45:00

ansible 部署基于windows 2008 r2+rsync+alwaysUp(守护进程)的相关文章

基于windows 2008 R2域控的安装和加入客户机

实验目标: 1.DNS的安装 2.域控的安装 3.加入客户机 实验目的: 1.了解域环境是什么 2.熟悉域控制器的工作原理 实验拓扑: 实验步骤: 一. DNS的安装 A.域控网络属性的配置 作为域控服务器,IP地址必须是静态手工配置,绝对不能DHCP自动获取,因为DHCP自动获取的IP地址不是固定的,经常变化,这样对下面的客户机有很大的影响,导致客户无法正常工作,不一定要配置默认网关:但是DNS一定要配置正确了(DNS服务器可以是域控本机,也可以是另外一台服务器,本实验由于笔记本电脑本身的局限

Deploy 11.2.0.3 RAC+DG on Windows 2008 R2 Step by Step

环境规划: 节点1: tc1 192.168.56.101 内存:2G 节点2: tc2 192.168.56.102 内存:2G 物理备库:tcdg192.168.56.108内存:1.5G 操作系统:Windows 2008 R2 Enterprise ************ RAC部分 ************ 一.准备工作 1.改动提升权限提示方式为"不提示,直接提升"(默觉得"非Windows二进制文件的允许提示") cmd> secpol.msc

windows 2008 r2 x64 离线升级PowerShell3.0 及打开WinRM模块

windows 2008 r2 x64  离线升级PowerShell3.0 及打开WinRM模块 bat脚本 echo off set apath=%~dp0 :: 如果运行提示找不到文件apath 写完整路径 echo "install net4.0" %apath%\dotNetFx45_Full_x86_x64.exe  /quiet /norestart start /w pkgmgr /iu:PowerShell echo y|powershell set-executio

为OpenStack制作Windows 2008 R2镜像

前提条件: 支持硬件辅助虚拟化(Intel VT-x或AMD-V)的主机一台. 已安装好的CentOS7,默认的最小安装即可,配置网络使之可以访问外网. 准备Windows 2008 R2安装光盘镜像 配置过程: 注:以下配置中过程中,eno16777736为主机外部网络所对应的网卡,IP地址为192.168.1.9,配置过程中,请根据实际情况修改 环境准备 安装相关软件包 yum install -y vim wget net-tools bash-completion qemu-kvm li

客户端WinXP AD服务器是windows 2008 R2需打 KB943729

AD服务器是windows 2008 R2 发现在上面做的组策略在WIN7正常,无法在WINXP SP3上的机器就应用,网上查了查资料需要打个补订,KB943729才能应用Windows2008 R2上的组策略.部署WSUS把这个KB943729下发下去. KB943729下载地址: http://www.microsoft.com/zh-cn/download/details.aspx?id=3628

在Windows 2008 R2上搭建RAC+DG

前期规划: 节点1: tc1 192.168.56.101 内存:2G 节点2: tc2 192.168.56.102 内存:2G 物理备库:tcdg192.168.56.108内存:1G 操作系统:Windows 2008 R2 Enterprise ******* RAC部分 ******* 一.准备工作 1.修改提升权限提示方式为"不提示,直接提升"(默认为"非Windows二进制文件的同意提示") cmd> secpol.msc->本地策略-&g

Windows 2008 R2安装wamp server

一.平台windows 2008 R2,安装驱动,office 2010: 二.安装SP1补丁包,下载地址https://www.microsoft.com/zh-cn/download/details.aspx?id=5842 具体见附件1: 三.安装Microsoft Visual C++ 2015运行库 14.0.23026.0: 四.安装wamp server 3.0.6.即可

Windows 2008 R2 密码恢复

主题: Windows 2008 R2 密码恢复 准备工具: Windows2008 R2 安装光盘 ERDCommander Boot Media Wizard Tool (MsDaRT6.5)       http://www.xdowns.com/soft/6/65/2012/Soft_92944.html 操作步骤: 安装:MsDaRT6.5,生成工具ERD 使用ERD,制作启动光盘或U盘 使用制作的光盘或U盘来破解密码 详细参考下文: http://os.51cto.com/art/2

windows 2008 R2 当前已禁用远程登录

问题现象:windows 2008 R2 当前已禁用远程登录域用户及普通管理员adminstrator远程桌面登录服务器报错"当前已禁用远程登录" 查看日志信息"已拒绝登录请求,因为终端服务器当前处于漏模式,因此不接收新的用户登录..........." 解决办法: 开始--管理工具--远程桌面服务--远程桌面会话主机配置--用户登录模式--修改为"允许所有连接"