首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CoreOS -云-配置不保存文件

CoreOS -云-配置不保存文件
EN

Stack Overflow用户
提问于 2015-03-18 12:21:43
回答 2查看 192关注 0票数 1

我正在尝试编写一个“初始”的cloud-config文件,在缺省的Cloud-Config文件替换它并接管它之前,它会做一些设置。这就是它看起来的样子,但是每当它运行"clustersetup.service“时,它都找不到应该保存的clustersetup.sh文件。当然,如果我从终端运行它,它工作得很好。我做错了什么?

代码语言:javascript
复制
#cloud-config

coreos:
  etcd:
    addr: $private_ipv4:4001
    peer-addr: $private_ipv4:7001
  fleet:
    public-ip: $private_ipv4
  units:
    - name: clustersetup.service
      command: start
      content: |
        [Unit]
        Description=Cluster Setup

        [Service]
        ExecStartPre=/usr/bin/wget -q http://10.0.2.2:8080/clustersetup.sh -O ~/clustersetup.sh
        ExecStart=/usr/bin/bash ~/clustersetup.sh
        ExecStop=/usr/bin/bash
EN

回答 2

Stack Overflow用户

发布于 2015-03-20 08:46:02

systemd指定的路径不能是相对路径。请在指定完整路径/home/core/clustersetup.sh的情况下重试。

票数 1
EN

Stack Overflow用户

发布于 2015-03-20 20:15:54

在我的发行版(ubuntu)中,bash是在/bin中。你可以做的一件事是:

代码语言:javascript
复制
    ExecStartPre=/bin/bash -c '/usr/bin/wget -q http://10.0.2.2:8080/clustersetup.sh -O ~/clustersetup.sh'
    ExecStart=/bin/bash -c ~/clustersetup.sh'

我想当你把~推过壳的时候,你会得到它适当的膨胀。但是,~将相对于执行脚本的进程id (我不确定这是核心)。如果你想确认,你可以:

代码语言:javascript
复制
    ExecStartPre=/bin/bash -c '/usr/bin/wget -q http://10.0.2.2:8080/clustersetup.sh -O ~core/clustersetup.sh'
    ExecStart=/bin/bash -c ~core/clustersetup.sh'

我还没有测试过这个。我同意@Brian的观点,即显式路径将是更好的想法。一般来说,最好不要让shell参与执行。

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

https://stackoverflow.com/questions/29114083

复制
相关文章

相似问题

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