Làm thế nào để thiết lập đường dẫn khi áp dụng mô đun con rối đơn?


12

Tôi đang cố chạy một mô-đun như thế này:

puppet apply --verbose --modulepath=moduleshere --noop -e 'include myclass'

Tuy nhiên, tôi gặp loại lỗi này, cho biết đường dẫn không được đặt

Parameter unless failed: '[ -e "${logfile}" ]' is not qualified and no path was specified. Please qualify the command or specify a path.

Tôi không muốn chỉ định rõ ràng đường dẫn ở mọi vị trí như vậy và nó hoạt động tốt khi chạy như một phần của chạy rối hoàn toàn. Làm cách nào để chỉ định đường dẫn khi chạy một mô-đun?


1
Bạn có thể vui lòng chấp nhận câu trả lời thích hợp?
kenorb

Câu trả lời:


15

Các lệnh trong một Exectài nguyên phải có đủ điều kiện (nghĩa là /usr/bin/testthay vì test) hoặc paththuộc tính của Exectài nguyên đó phải được đặt.

Nếu bạn có thể sửa đổi (các) tệp kê khai rối, bạn chỉ cần thêm định nghĩa sau để đặt paththuộc tính mặc định cho tất cả Exectài nguyên thành /bin:

Exec { path => "/bin" }

Là một cách giải quyết bẩn (ít nhiều), bạn cũng có thể đặt mặc định pathcho bất kỳ Exectài nguyên nào trên dòng lệnh:

$ puppet apply --verbose -e 'Exec { path => "/bin" }' your_manifest.pp

Con trỏ tài liệu:


2

Điều đó .. không nên hoạt động như một phần của hoạt động đầy đủ. Nó cần một đường dẫn đầy đủ để thực thi trong unlesslệnh. Có lẽ bạn đã có một đường dẫn được đặt trong một tệp toàn cầu, đó là một phần của toàn bộ hoạt động của bạn?

Hãy thử unless => '/usr/bin/[ -e "${logfile}" ]', thay vào đó.


1

Tôi đồng ý với Shane rằng đường dẫn mặc định có thể được đặt trong một bảng kê khai có phạm vi toàn cầu. Bạn có thể làm tương tự nhưng bạn không thể vượt qua nó như một đối số, vì vậy hoặc sử dụng stdin:

$ puppet apply -v --modulepath=moduleshere --noop <<EOF
Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin" }
include myclass
EOF

hoặc đặt Exec và bao gồm các dòng vào example.ppvà sau đó sử dụng puppet apply -v ... example.pp.


1

Bạn cần sử dụng đường dẫn đầy đủ.

Ví dụ:

exec { "sample":
  command => "/usr/bin/test",
}

hoặc là:

exec { "sample":
  path    => ['/usr/bin', '/usr/sbin', '/bin'],
  command => "test",
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.