我是Ansible的新手,目前正在构建一些剧本来执行常见任务,例如执行预&在dev/test中安装我们的软件。
我正在处理的一个场景是使用Ansible配置从TF启动的服务器。Ansible将安装我们软件的所有预请求,如C++二进制文件、SQL Server、IIS角色等,然后安装我们的软件并执行后请求,如安装证书等,到目前为止,我一直在使用角色来完成这项工作。
我执行上述操作的剧本目前是这样的:
- hosts: TargetInventory
gather_facts: true
vars_files:
- Windows/000-files/play_variable_files/Windows-Standard-Include.yml
- Windows/000-files/play_variable_files/Application-Details.yml
pre_tasks: []
roles:
- Windows/010-playbook-init/010-temp-dirs-and-tools
- Windows/100-InstallWindowsFeatures/090-Install-dotNET35
- Windows/105-InstallIISRoles-AppName
- Windows/100-InstallWindowsFeatures/060-Install-MSMQ
- Windows/100-InstallWindowsFeatures/070-Install-SMTP
- Windows/100-InstallWindowsFeatures/080-Install-SNMP
- Windows/200-InstallPackages/020-InstallNet48
- Windows/200-InstallPackages/030-InstallCPPRedistributable
- Windows/200-InstallPackages/040-InstallMVC
- Windows/300-InstallSoftware/040-Install-SQL-Server
- Windows/300-InstallSoftware/042-Install-SQL-Server-Managment-Studio
- Windows/500-SpecialityMachines/Install-Configure-ApplicationName
虽然这是有效的,但我正在努力从长远考虑,并建立正确的结构,因为我还有一些应用程序要做。
我在创建角色Install Configure ApplicationName时遇到了这个潜在的障碍,这个角色目前相当单一。
它将安装MSI,安装SSL证书,为具有主机名inc web.config mods的应用程序配置IIS,验证IIS,在注册表中配置电子邮件等。我想将这些表演拆分为角色,因为这些部分可以用于其他地方,如安装证书,为ADHOC作业配置电子邮件。
我个人喜欢这个想法,但我认为在文件方面会更进一步。比方说,在5年后,我构建配置我们的应用程序的所有这些角色的剧本都不见了。他们怎么知道你需要20个角色来部署应用程序?这让我对我目前的角色设置产生了怀疑,因为我需要文档来说明什么应该已经是文档了?
我的困惑在于,你是如何定义和组织角色的,以及如何将其转化为不同的领域,如文档等?
渴望听到你的想法。
Brad
我没有将ansible用于服务器的经验,但我确实用于网络配置和管理。我根据将要提供的服务创建角色。
你基本上是在构建一个自下而上的结构。
组件角色:
- SSL安装选项1
- SSL安装选项2
- 验证选项1
职能角色
-
SSL Flavor 1(角色(
-
- SSL安装选项1
-
- 验证选项1
-
SSL Flavor 2(角色(
-
- SSL安装选项2
-
- 验证选项1
父/服务角色SSL
- SSL Flavor 1
- SSL风格2
因此,您的文档将提供运行顶级父/服务角色的预期输入和预期输出,即SSL Flavor 1需要abc输入,而SSL Flavor2需要xyz输入。