Làm thế nào để kích hoạt dịch vụ khởi tạo systemd với con rối?


9

Tôi đã có dịch vụ múa rối sau:

service { "getty@ttyUSB0.service": 
    provider => systemd,
    ensure => running,
    enable => true,
}

Khi tôi cố gắng áp dụng cấu hình này cho máy khách của mình, nó sẽ báo lỗi sau:

err: /Stage[main[//Node[puppetclient[/Service[getty@ttyUSB0.service[/enable: thay đổi từ false thành true fail: Không thể kích hoạt getty@ttyUSB0.service:

Dịch vụ đang hoạt động tốt và tôi có thể chắc chắn rằng nó đã bắt đầu khởi động hệ thống bằng cách thêm liên kết tượng trưng vào getty.target.wants:

ln -s /lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@ttyUSB0.service

Về nguồn, tôi có thể tiếp tục và xóa "enable => true" khỏi định nghĩa dịch vụ và bao gồm một liên kết tượng trưng thủ công trong cấu hình con rối, nhưng con rối có nên quan tâm đến vấn đề này không? Tôi đang làm điều gì đó sai lầm khủng khiếp?

Câu trả lời:


6

Nhà cung cấp systemd trong Puppet ngày nay chỉ sử dụng hai lệnh cho enabletrạng thái dịch vụ :

  • systemctl is-enabled <unit>, kiểm tra mã trả về trạng thái kích hoạt hiện tại
  • systemctl enable/disable <unit> thay đổi nó

Lệnh enable sẽ xuất hiện lỗi khi bạn kích hoạt phiên bản của dịch vụ getty @ chưa tồn tại:

$ sudo systemctl enable getty@ttyUSB0.service
Failed to issue method call: No such file or directory

Điều này sau đó gây ra lỗi hiển thị trong Puppet (mặc dù stderr dường như không được hiển thị).

Đối với tôi, có vẻ như một lỗ hổng trong systemd mà bạn không thể kích hoạt các phiên bản mới của mẫu. Đã có BZ # 752774 ở Fedora , nhưng các ý kiến ​​cho thấy nó có thể không được thêm sớm.

Bạn có thể tốt hơn nên gửi yêu cầu tính năng chống lại Puppet để thêm hỗ trợ cụ thể để bật các phiên bản mới. Trong yêu cầu tính năng của bạn, tôi khuyên bạn nên liên kết với lời giải thích của Lennart về các trường hợp đơn vị cho nền.

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.