问题描述
我有一个用于将 MS sql 2014 安装到 Windows Server 2016 的 powershell 脚本(手动测试并确认工作正常)。
powershell 脚本缩写:
$sqlInstanceName = {{ sqlInstance }}
$localAdminPword = {{ localAdminPword }}
### Some more variables here declared the same as above
echo [OPTIONS] > $sqlServerInstallerPath\sqlServerConfigurationFile
### more echo lines like the above.
& $sqlServerInstallerPath\setup /SAPWD=$localAdminPword /ConfigurationFile=$sqlServerInstallerPath\sqlServerConfigurationFile
我的剧本很简单,只有目标主机的主机和两个任务,我只是使用 win_template 生成脚本,然后使用 win_shell 执行它。类似:
---
- name: Install sql
hosts: "{{ newhost }}"
tasks:
- name: generate script
win_template:
src: "scriptName"
dest: "{{ path }}//scriptName.ps1"
- name: run script
win_shell: ./scriptName.ps1
args:
chdir: "{{ path }}"
以下是场景的概要:
场景 1:
我使用 Ansible Tower 运行针对使用 vRealize Automation 新调配的服务器的作业。
我登录到新服务器,发现没有安装 MS sql,powershell 脚本不起作用......很奇怪,
所以我注销了服务器并再次运行相同的作业,没有更改,只需重新运行即可。 再次登录服务器,这次MS sql安装正确。
场景 2:
我完全重复了场景 1,一切都一样,这一次,我连续运行了两次作业。 我登录服务器,看到没有安装 MS sql。 注销,然后再次运行作业,登录,看到安装了 MS sql
场景 3:
我配置了一个新服务器,与之前的场景完全相同,但这次我登录它只是看桌面,看看开始菜单,然后注销。
我现在在我配置的这台新服务器上再次运行相同的作业。
它似乎不起作用,除非我在运行此作业之前先登录到新服务器。这违背了自动化的目的......有没有人对此有想法?我应该研究某种设置或标志吗? (注意:服务器没有“首次登录时更改密码”的东西,据我所知,我没有在该服务器上指定任何首次登录的东西。)我需要这个工作而不做第一次登录。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)