問題タブ [facter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
301 参照

vagrant - Puppet - 無効なファクター オプションのエラー メッセージ

LAMPスタックを備えたUbuntu 14.04ボックスを構築するマシンでローカルのVagrantセットアップを実行しています。Vagrant は、ボックスを初期化するプロセスを開始し、パペット スクリプトを開始して、要件に合わせてボックスを構築および構成します。

このボックスを何度も破棄して再構築しましたが、昨日の時点で、事実を取得できないというエラーが発生し始めました (以下の出力を参照)。何も変わっていないので、なぜそうなったのかわかりません。同じコード ベースをチェックアウトして、問題なくこのボックスをビルドできる他の同僚がいます。どうすればこの問題の根底にたどり着くことができるかについて、助けや指示をいただければ幸いです。

更新: パペット トレース

vagrant@rentpro-web:~$ sudo puppet apply -vv --debug --environment development --modulepath=/etc/puppet/modules/ /etc/puppet/manifests/site.pp --trace

0 投票する
1 に答える
86 参照

yaml - Puppet hiera が正しく継承されない (Puppet バージョン 4.3.2)

私の/etc/puppetlabs/codeフォルダ構造:

次に、YAML ファイルの場合:

それでも、hiera を実行すると、次の結果が得られます。

hieradata/hostname/client.yamlは をオーバーライドする必要がありcommon.yaml、が渡されたhieraときにコマンドが別のものを返すようにします。::hostname=client

私は何を間違っていますか?

0 投票する
1 に答える
569 参照

windows - Windowsでパペットを使用してカスタムファクトでフォルダ名を作成する方法は?

Windowsで現在の日付と時刻を作成するカスタムファクトを作成しました。そのファクトは、通知すると現在の日付と時刻を返します。

例えば:

上記のコードの出力は「05-04-2016-194645」です

しかし、カスタム ファクトを使用してフォルダーを作成しようとすると、タイムスタンプを使用してフォルダーを作成できません。私のコードは以下です。

上記のコードは、「${windows_time}」というフォルダー名を作成しました。

日付とタイムスタンプを作成するための私の事実は以下のとおりです。

どんな助けでも大歓迎です。

0 投票する
2 に答える
1066 参照

rspec - ファクトに対して小数乗算を行う Puppet テンプレートをテストするためにファクトをモックするにはどうすればよいですか?

環境:

レンダリング時にファクトのcountサブコンポーネントに対処するパペット テンプレートがあります。processorsその事実は私のすべてのクライアントに存在します。

ファクトの使用例は、10 進数の計算を実行するテンプレート行にあります。たとえばMyConfigVar=<%= 0.9 * @processors['count'] %>、一部の.erbファイルです。

したい:

  1. テンプレート化されたコードを本番ホストにデプロイします。
  2. テンプレート用の堅牢な単体テストを作成して、事実のさまざまな妥当な値が与えられた場合に適切にレンダリングされることを確認できるようにします。

私が試したこと:

最初に、私は sigils: で試しました<%= 0.9 * @processors[:count] %>。rspec-puppet で のようなものをモックした場合facts = { :processors => { :count => 10 } }、テストはすべてパスしました。マニフェスト アプリケーションが機能しませんでした。「乗算できませんnil」というエラーがありました。シジルは明らかにアウトです。

次に、文字列のキーを試しました: <%= 0.9 * @processors['count'] %>. シジル ( ) を使用したテストはfacts = { :processors => { :count => 10 } }検出されませんでしたが、値が適切に検出され、 が乗算されましたfacts = { :processors => { 'count' => 10 } }。その後、すべてのテストに合格しました。ただし、マニフェストの適用は失敗で失敗しましたCan't coerce String into Int

次に、文字列の値を試しました。テンプレートはまだ読み取ら<%= 0.9 * @processors['count'].to_i %>れており、文字列と整数値の両方をテストしました。

0.0テストはすべて合格しましたが、マニフェスト アプリケーションは事実の価値のためにレンダリングされました。

質問:

2 つの主な質問:

  1. この (または任意の) 事実を確実に処理するインライン 10 進数を取得するにはどうすればよいですか?
  2. rspec-puppet実稼働を代表する型を使用して、値を実際に使用して、または同様にモックすることで、確実に単体テストを行うにはどうすればよいですか?
0 投票する
1 に答える
1133 参照

hash - 操り人形が事実を文字列化する

パペットとファクターに問題があります。

puppet --version -> 3.8.6
ファクト --version -> 2.4.6

ネストされたハッシュを returnvalue として、softwareinventory のファクトを書き込みます

このような:

クライアントとサーバーの puppet.conf には以下が含まれています: stringify_facts = false

コンテンツを含むローカル マニフェスト test.pp を使用してクライアントでテストする場合:
{$::packages['Notepad++']['Displayversion'] に通知します。

puppet apply test.pp
正しい値を取得 = 6.8.3

factor -p packages は期待どおりのハッシュを返します。

ただし、puppetrun の場合:
puppet agent -t -d -v

puppetdb をカールする場合: curl -k http://puppetdbname:8080/v3/nodes/nodename/facts/packages

文字列しか見えない!

誰でも助けてください。何か案は?

ありがとうタナー

0 投票する
1 に答える
163 参照

c++ - C を使用して FreeBSD から kenv 設定を取得するにはどうすればよいですか?

FreeBSD でFacterを改善しようとしています。以前はこれは Ruby コードだったので、Ruby プログラマーとして理解するのはかなり簡単でした。Facter の 3.X リリース以降、パフォーマンスのために主に C/C++ に移行しました。

この移行中に、FreebSD などのいくつかの事実が失われました。それらを元に戻そうとしています。しかし、私は C++/C プログラマーではないので、基本的には他の人の FreeBSD 用の C コードを読んで、それを適応させただけです。

だから私はこれで正しい方向にいると思います:

ファクトリ/lib/inc/internal/facts/freebsd/dmi_resolver.hpp

ファクトリ/lib/src/facts/freebsd/dmi_resolver.cc

しかし、これを実行すると、次のエラーが発生します。

これを修正するにはどうすればよいですか?

0 投票する
0 に答える
645 参照

hash - puppetdb は、ハッシュなどの構造化された事実を文字列化します

puppetdb と構造化された事実 (ハッシュ) に問題があります。

ハッシュは puppetdb を通じて文字列化されます。

クライアントとサーバーの puppet.conf に以下を含めました。

私のsite.ppには、次のエントリがあります。

サーバー上の puppet.conf にある場合:

puppetdbが実行されています。

クライアント puppetrun で次のメッセージが表示されます。

site.pp を only に変更した場合:

次に、メッセージが表示されます->「os is a string」

サーバーの puppet.conf を次のように変更した場合:

それなら大丈夫です。os ファクトはハッシュとして識別されます。

誰かアイデアはありますか?助けてください:)タナー