14

私はSaltStackで足を濡らしています。最初の状態 (静的構成の Vim インストーラー) を作成し、2 つ目の状態に取り組んでいます。

残念ながら、州にインストールしたいアプリケーションの Ubuntu パッケージはありません。私は自分でアプリケーションを構築する必要があります。Salt を使用して「configure-make-install」タイプのインストールを行うための「ベスト プラクティス」はありますか? または、cmdを使用する必要がありますか?

特に、手作業で行っている場合は、次のようにします。

wget -c http://example.com/foo-3.4.3.tar.gz
tar xzf foo-3.4.3.tar.gz
cd foo-3.4.3
./configure --prefix=$PREFIX && make && make install
4

2 に答える 2

23

必要に応じて、最初の 2 行を抽象化する状態モジュールがあります。

ただし、ターゲットのミニオンでコマンドを実行することもできます。

install-foo:
  cmd.run:
    - name: |
        cd /tmp
        wget -c http://example.com/foo-3.4.3.tar.gz
        tar xzf foo-3.4.3.tar.gz
        cd foo-3.4.3
        ./configure --prefix=/usr/local
        make
        make install
    - cwd: /tmp
    - shell: /bin/bash
    - timeout: 300
    - unless: test -x /usr/local/bin/foo

unlessスクリプトをべき等にする引数を必ず含めてください。

または、ミニオンに bash スクリプトを配布して実行します。参照: Salt Stack を使用して複数のコマンドを実行するにはどうすればよいですか?

best practicefpm.deb または .rpm パッケージを作成してインストールするために使用することをお勧めします。少なくとも、その tarball をソルト マスターにコピーし、今から 3 年後にそこにある外部リソースに依存しないでください。

于 2014-02-11T23:12:44.617 に答える
11

がGitHubfoo-3.4.3.tar.gzにチェックインされているとします。状態ファイルで追求できるアプローチは次のとおりです。

git:
  pkg.installed

https://github.com/nomen/foo.git:
  git.latest:
    - rev: master
    - target: /tmp/foo
    - user: nomen
    - require:
      - pkg: git

foo_deployed:
  cmd.run:
    - cwd: /tmp/foo
    - user: nomen
    - name: |
        ./configure --prefix=/usr/local
        make
        make install
    - require:
      - git: https://github.com/nomen/foo.git

構成の場所は、ソルト ピラーprefixとして渡される可能性があります。ビルド プロセスがより複雑な場合は、カスタム ステートを作成することを検討してください。

于 2014-02-11T23:27:13.057 に答える