首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用傀儡自动安装msodbcsql

用傀儡自动安装msodbcsql
EN

Stack Overflow用户
提问于 2017-05-15 16:31:27
回答 1查看 2.6K关注 0票数 6

要安装mssql附带的msodbcsql,需要使用用于Linux的驱动程序所需的工具,需要以下命令

代码语言:javascript
复制
sudo ACCEPT_EULA=Y apt-get install mssql-tools

但是,当使用木偶安装此代码时,此操作失败,当前使用的傀儡代码

代码语言:javascript
复制
package { 'mssql-tools'      : ensure => latest, }

但这会返回一个错误:

代码语言:javascript
复制
ERROR: The EULA was not accepted. Installation aborted.

什么是需要的,这样木偶才能成功地安装这个软件包。在调用package命令之前,我已经尝试过设置一个环境变量。

代码语言:javascript
复制
Exec { environment => [ "ACCEPT_EULA=Y" ] }

Microsoft的安装说明如下:

https://blogs.msdn.microsoft.com/sqlnativeclient/2017/02/04/odbc-driver-13-1-for-linux-released/

这是驱动程序:

https://www.microsoft.com/en-us/sql-server/developer-get-started/php/ubuntu/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-15 17:29:02

这似乎是请求的特性;运行具有环境值的包实体。

但是,由于有一个特性冻结,这将不会实现在傀儡4.x (https://projects.puppetlabs.com/issues/6400)

解决方法不是使用包实体,而是使用exec实体:

代码语言:javascript
复制
exec { "/usr/bin/apt-get -yq install msodbcsql":
  environment => "ACCEPT_EULA=Y",
  unless => "/usr/bin/dpkg -l msodbcsql | tail -1 | grep ^ii",
}

如果已经安装了包,则除非用于使其无效,否则不能运行。

这种方法的缺点是,只有在使用apt时才能工作,如果您希望它也能在其他系统上工作,那么您应该为$osfamily提供一个if语句,以使用正确的包管理器。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43984594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档