Điểm:1

Cấu hình bảng kê khai con rối để xác minh hình ảnh docker

lá cờ cn

Tôi còn khá mới với devops/ci/cd, vì vậy hãy thông cảm cho tôi.

Hiện tại, tôi đang thiết lập cấu hình bảng kê khai con rối để xác minh hình ảnh docker. Hãy để tôi cố gắng bố trí nó ra:

Tôi có một máy chủ con rối với cấu hình sau:

  • Phiên bản con rối: 5.5.10-4ubuntu3
  • Cả hai máy chủ đều là linux 20.04
  • Tất cả được lưu trữ trên AWS

/etc/puppet/code/environments/production/manifests/site.pp

nút mặc định {
    bao gồm 'docker'
    docker::image { 'jorgemauriciodev/ubuntu-dockerfile-dev-v1': }
}

Mỗi lần tôi thử một lệnh xác minh mới trong .pp, tôi khởi động lại máy chủ con rối bằng lệnh sau: Sudo systemctl khởi động lại con rối

Tôi đã cài đặt một mô-đun có tên là gareth-docker trên cả hai máy chủ của mình - tác nhân và máy chủ.

Trên máy chủ nô lệ/tác nhân, tôi có hình ảnh docker image này và đang chạy: jorgemauriciodev/ubuntu-dockerfile-dev-v1 Đối với bước đầu tiên, tôi chỉ muốn kiểm tra xem hình ảnh có tồn tại trong máy chủ nô lệ của tôi hay không. Sau này, tôi sẽ tìm cách đảm bảo rằng nó đang chạy hoặc được xây dựng bằng Dockerfile.

Trên máy chủ nô lệ/đại lý, tôi chạy: đặc vụ bù nhìn sudo âtest

Và tôi nhận được thông báo lỗi sau:

Lỗi: Không thể truy xuất danh mục từ máy chủ từ xa: Lỗi 500 trên MÁY CHỦ: Lỗi Máy chủ: Lỗi Đánh giá: Lỗi khi đánh giá Lệnh gọi Chức năng, Không thể tìm thấy lớp ::docker cho ip-123-123-123-123.us-east- 2.compute.internal (tệp: /etc/puppet/code/environments/production/manifests/site.pp, dòng: 2, cột: 5) trên nút ip-123-123-123-123.us-east-2 .compute.internal Cảnh báo: Không sử dụng bộ đệm trên danh mục bị lỗi Lỗi: Không thể truy xuất danh mục; bỏ qua chạy

Có ai biết tôi đang gặp vấn đề gì với tệp kê khai con rối không?

Chỉnh sửa 1:

Tôi đã thực hiện một số thay đổi được đề xuất. Bây giờ, tệp của tôi có một tên khác và thay đổi nội dung: /etc/puppet/code/environments/production/manifests/init.pp

bao gồm 'docker'
lớp { 'docker':
  phiên bản => 'mới nhất',
}
docker::image { 'jorgemauriciodev/ubuntu-dockerfile-dev-v1': }

Vẫn trả lại cho tôi thông báo lỗi tương tự.

Đây là thông điệp đầy đủ:

/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
/usr/lib/ruby/vendor_ruby/puppet/util.rb:315: cảnh báo: Object#=~ không dùng nữa được gọi trên Puppet::Transaction::Report; nó luôn trả về con số không
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
/usr/lib/ruby/vendor_ruby/puppet/util.rb:315: cảnh báo: Object#=~ không dùng nữa được gọi trên Puppet::Transaction::Report; nó luôn trả về con số không
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
Thông tin: Sử dụng môi trường được định cấu hình 'sản xuất'
Thông tin: Truy xuất pluginfacts
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
/usr/lib/ruby/vendor_ruby/puppet/util.rb:315: cảnh báo: Object#=~ không dùng nữa được gọi trên Puppet::Transaction::Report; nó luôn trả về con số không
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
/usr/lib/ruby/vendor_ruby/puppet/indirector/request.rb:272: cảnh báo: URI.unescape đã lỗi thời
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
Thông tin: Truy xuất plugin
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
/usr/lib/ruby/vendor_ruby/puppet/util.rb:315: cảnh báo: Object#=~ không dùng nữa được gọi trên Puppet::Transaction::Report; nó luôn trả về con số không
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
/usr/lib/ruby/vendor_ruby/puppet/indirector/request.rb:272: cảnh báo: URI.unescape đã lỗi thời
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
Thông tin: Truy xuất ngôn ngữ
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
/usr/lib/ruby/vendor_ruby/puppet/util.rb:315: cảnh báo: Object#=~ không dùng nữa được gọi trên Puppet::Transaction::Report; nó luôn trả về con số không
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
/usr/lib/ruby/vendor_ruby/puppet/indirector/request.rb:272: cảnh báo: URI.unescape đã lỗi thời
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
Lỗi: Không thể truy xuất danh mục từ máy chủ từ xa: Lỗi 500 trên MÁY CHỦ: Lỗi Máy chủ: Lỗi Đánh giá: Lỗi khi đánh giá Lệnh gọi Chức năng, Không thể tìm thấy lớp ::docker cho ip-172-31-21-116.us-east- 2.compute.internal (tệp: /etc/puppet/code/environments/production/manifests/init.pp, dòng: 1, cột: 1) trên nút ip-172-31-21-116.us-east-2 .compute.internal
Cảnh báo: Không sử dụng bộ đệm trên danh mục bị lỗi
Lỗi: Không thể truy xuất danh mục; bỏ qua chạy
/usr/lib/ruby/vendor_ruby/puppet/file_system/uniquefile.rb:126: cảnh báo: $SAFE sẽ trở thành biến toàn cục bình thường trong Ruby 3.0
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời
/usr/lib/ruby/vendor_ruby/puppet/file_system/uniquefile.rb:126: cảnh báo: $SAFE sẽ trở thành biến toàn cục bình thường trong Ruby 3.0

Chỉnh sửa 2:

Tôi đã cài đặt thêm các mô-đun trên máy chủ chính và máy chủ phụ/tác nhân bằng lệnh này:

mô-đun con rối sudo cài đặt con rốilabs-docker --version 4.1.2

Và nó vẫn trả lại cho tôi một thông báo lỗi, nhưng bây giờ có vẻ như đó là một thông báo khác. Vì vậy, có thể là một vấn đề cú pháp bây giờ.

Đây là phần quan trọng của thông điệp.

Lỗi: Không thể truy xuất danh mục từ máy chủ từ xa: Lỗi 500 trên MÁY CHỦ: Lỗi Máy chủ: Lỗi Đánh giá: Lỗi trong khi đánh giá Tuyên bố Tài nguyên, Khai báo trùng lặp: Lớp [Docker] đã được khai báo; không thể khai báo lại (tệp: /etc/puppet/code/environments/production/manifests/init.pp, dòng: 3) (tệp: /etc/puppet/code/environments/production/manifests/init.pp, dòng: 3, cột: 1) trên nút ip-123-123-123-123.us-east-2.compute.internal
Cảnh báo: Không sử dụng bộ đệm trên danh mục bị lỗi
Lỗi: Không thể truy xuất danh mục; bỏ qua chạy

Bên cạnh tin nhắn này, nó vẫn trả lại cho tôi những cảnh báo đó, nhưng danh sách này lớn hơn nhiều. Tuy nhiên, tôi không nghĩ rằng đó là một mối quan tâm tại thời điểm này.

Điểm:0
lá cờ ng

Lỗi 500 trong con rối có nghĩa là mã viết sai, bạn có thể vui lòng chia sẻ toàn bộ cấu hình (init.pp) và tôi có thể cho bạn biết từ đó.

lớp { 'docker':
  phiên bản => 'mới nhất',
}

docker::image { 'jorgemauriciodev/ubuntu-dockerfile-dev-v1': }

Thêm thông tin có sẵn ở đây: https://forge.puppet.com/modules/puppetlabs/docker

Jorge Mauricio avatar
lá cờ cn
Vâng. Đó là tập tin đầy đủ. Thôi được. Tôi sẽ thay đổi tên của tệp và kiểm tra xem đó có phải là tệp đó không. nó có nên ở trong đường dẫn mà tôi đặt không?
Zhivko Zhelev avatar
lá cờ ng
thường là thế này ```/etc/puppetlabs/code/environments/production/manifests/init.pp```
Zhivko Zhelev avatar
lá cờ ng
Xin vui lòng nhìn vào câu trả lời. Đây là cách nó nên được viết, hãy thử sao chép/dán nó và tệp không cần thiết phải chính xác ```init.pp``` trong trường hợp của bạn, xin lỗi tôi rất tiếc.
Jorge Mauricio avatar
lá cờ cn
cảm ơn đã giúp đỡ. Tôi đã làm chính xác như bạn đã đăng, khởi động lại máy chủ con rối, chạy Sudo con rối agent --test và vẫn gặp lỗi tương tự. Tôi không chắc mình đã cài đặt đúng mô-đun gareth-docker hay chưa. Tôi đã sử dụng CMD này: sudo con rối mô-đun cài đặt gareth-docker. Tôi nên cài đặt nó trên master hay slave? Và có cách nào để tôi kiểm tra xem tôi đã cài đặt đúng chưa? Hay còn thiếu gì nữa không?
Zhivko Zhelev avatar
lá cờ ng
Nó nên sử dụng ```r10k``` đây là công cụ quản lý gói tích hợp trong con rối, đồng thời thử ```Sudo Puppetrun --noop``` trên máy khách và vui lòng cung cấp đầu ra. Tôi không biết bạn thiết lập môi trường con rối như thế nào và không dễ để đưa ra câu trả lời thẳng thắn.
Jorge Mauricio avatar
lá cờ cn
Tôi hiểu. Chà, tôi biết rằng tôi sắp hoàn thành, vì tôi đã kiểm tra tệp kê khai .pp với các lệnh khác hoạt động. Ví dụ: ```tệp {'/tmp/it_works.txt': đảm bảo => hiện tại, chế độ => '0644', content => "Nó hoạt động trên ${ipaddress_eth0}!\n", }``` - đã hoạt động và cả ```service { 'docker': đảm bảo => chạy, }``` - đã hoạt động. Khi tôi chạy lệnh mà bạn vừa gửi cho tôi (sudo con rối run --noop), nó xuất ra thông báo sau: /usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời Lỗi: Tiểu ban con rối không xác định 'chạy' Xem 'trợ giúp con rối' để được trợ giúp về con rối có sẵn
Jorge Mauricio avatar
lá cờ cn
Hãy nghĩ rằng tôi phải chạy cái này, phải không: đặc vụ bù nhìn sudo --noop. Nếu đó là trường hợp, đây là những gì xuất hiện cho tôi: /usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời /usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời /usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời /usr/lib/ruby/vendor_ruby/puppet/util.rb:461: cảnh báo: URI.escape đã lỗi thời /usr/lib/ruby/vendor_ruby/puppet/util.rb:315: cảnh báo: Object#=~ không dùng nữa được gọi trên Puppet::Transaction::Report; nó luôn trả về con số không (tiếp tục trong 3 dòng)
Zhivko Zhelev avatar
lá cờ ng
được rồi, vui lòng chạy cái này trên máy chủ và tác nhân ```puppet module install Puppetlabs-docker --version 4.1.2``` và thử lại với ```puppet agent --test```
Jorge Mauricio avatar
lá cờ cn
Vâng. Tôi nghĩ chúng ta đang phát triển. Cảm ơn đã giúp đỡ.Tôi đã cài đặt các mô-đun bổ sung trên cả máy chủ và máy chủ. Khởi động lại dịch vụ bậc thầy con rối và chạy lại ```sudo con rối đại lý --test```. Đưa cho tôi một thông báo cảnh báo lớn hơn và một thông báo lỗi khác. Có vẻ như nó có thể là một vấn đề cú pháp bây giờ. Tôi đã chỉnh sửa câu hỏi và đặt cảnh báo lỗi mới.
Zhivko Zhelev avatar
lá cờ ng
xóa ```bao gồm 'docker'``` và bạn sẽ ổn thôi :) dòng này giống như ```class { 'docker':``` cả hai sẽ bao gồm nó, chỉ với dòng đầu tiên bạn không làm gì cả
Jorge Mauricio avatar
lá cờ cn
Đã làm việc! Cảm ơn rất nhiều!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.