首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CFEngine 3.5 Oracle承诺

CFEngine 3.5 Oracle承诺
EN

Stack Overflow用户
提问于 2014-06-30 14:42:36
回答 1查看 229关注 0票数 2

这里是CFEngine 3新手。

我正试图在Ubuntu系统上安装Oracle,我应该如何用CFEngine编写它呢?

我可以使用webupd8team提供的PPA在shell中进行类似的操作。

代码语言:javascript
复制
add-apt-repository ppa:webupd8team/java
apt-get update

echo "Installing JDK 7..."
echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections
echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections
apt-get install -y oracle-java7-installer

我在CFEngine上做这件事完全失败了。到目前为止,我已经:

代码语言:javascript
复制
body common control {
    inputs => { "$(sys.libdir)/stdlib.cf" };
    bundlesequence => { "manage_properties", 
                        "manage_jdk"};
}

bundle agent manage_properties {
    vars:
        "prop_pkgs" slist => {"python-software-properties", "software-properties-common"};
        "cmds"      slist => {  "/usr/bin/add-apt-repository ppa:webupd8team/java",
                                "/bin/echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections", 
                                "/bin/echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections",
                                "/usr/bin/apt-get update" };

    methods:
        "$(prop_pkgs)" 
            handle => "manage_properties",  
            comment => "Make sure required properties packages are installed",
            usebundle => package_latest("$(prop_pkgs)");

    commands:
        "$(cmds)"
            comment => "Firing preinstall commands for JDK";
}

bundle agent manage_jdk {
    methods:
        "JDK" 
            handle => "manage_jdk",
            comment => "Make sure Java is installed",
            usebundle => package_latest("oracle-java7-installer");
}

但是,这个承诺失败了,有以下错误:

代码语言:javascript
复制
2014-06-30T14:11:18+0000    error: /default/manage_jdk/methods/'JDK'/default/package_latest/packages/'oracle-java7-installer'[0]: Finished command related to promiser 'oracle-java7-installer' -- an error occurred, returned 100
2014-06-30T14:11:18+0000    error: /default/manage_jdk/methods/'JDK'/default/package_latest/packages/'oracle-java7-installer'[0]: Bulk package schedule execution failed somewhere - unknown outcome for 'oracle-java7-installer'

会喜欢任何指针的。谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-11-15 14:39:57

我在您的策略中看到的一件事是,您正在运行一些需要shell (管道命令)的命令,并且您的命令承诺不会包含在任何shell中。

commands: "/bin/echo 'Hello World' | grep Hello" contain => in_shell;

而且,似乎您对预命令采取了一个非常必要的观点。CFEngine通常每5分钟运行一次策略。在必要时,我将更多地关注于执行必要的操作,并试图将重点放在状态而不是行动上。

例如,无条件地运行apt-add-存储库。考虑在什么条件下实际需要执行命令。

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

https://stackoverflow.com/questions/24492765

复制
相关文章

相似问题

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