Tạo/Xoá thông tin Credential trên Jenkins bằng CLI

Tạo/xoá thông tin Credential trên Jenkins bằng CLICuongquach.com | Tạo/xoá thông tin chứng thực (Credential) khác nhau trên Jenkins giao diện web thì chắc đơn giản rồi. Nhưng bạn đã biết cách khởi tạo/xoá một Credential trên Jenkins thông qua Command Line (CLI) hay chưa ? Thao tác này khá là có ích nếu bạn quan tâm đến quá trình tự động hoá tác vụ tạo/xoá Credential Jenkins đấy. Hôm nay chúng ta sẽ cùng đến với nội dung hướng dẫn này.

tao-xoa-credential-tren-jenkins-bang-cli

Credential trên Jenkins là gì ?

Có rất nhiều trang web và ứng dụng của bên thứ 3 có thể tương tác với Jenkins: docker registry, cloud storage, hệ thống, dịch vụ, git,… Vì vậy để có thể chứng thực kết nối các dịch vụ bên thứ 3 thì bạn cần khởi tạo các thông tin chứng thực (Credential) để tương tác với dịch vụ khác.

1. Thao tác tạo Credential trên Jenkins bằng CLI

Đầu tiên bạn cần download chương trình ‘jenkins-cli‘ của dịch vụ Jenkins đang chạy. Chương trình ‘jenkins-cli‘ sẽ giúp bạn tương tác với API dịch vụ Jenkins mà bạn đang host.

Ví dụ dịch vụ Jenkins mình đang chạy dưới domain : https://jenkins.cuongquachlab.com/

# cd /opt/
# wget https://jenkins.cuongquachlab.com/jnlpJars/jenkins-cli.jar
# mv jenkins-cli.jar /usr/bin/jenkins-cli.jar
# chmod +x /usr/bin/jenkins-cli.jar

Kế đến bạn cần khai báo một file template định dạng *.xml với nội dung trong bài viết này sẽ giúp bạn 2 loại thông tin chứng thực cơ bản gồm :

  • Username và password
  • SSH Key

+ Username/password Credential
Giả sử mình add user ‘demo-cuongquach‘ và mật khẩu là ‘Aa@123456‘.

# cd /opt/
# vi credential-pass.xml
<com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl>
  <scope>GLOBAL</scope>
  <id>demo-cuongquach</id>
  <username>demo-cuongquach</username>
  <password>Aa@123456</password>
</com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl>

+ SSH Private/public Key
Giả sử mình add user ‘demo-cuongquach2‘ với thông tin public key ssh.

# cd /opt/
# vi credential-key.xml
<com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey plugin="ssh-credentials@1.15">
  <scope>GLOBAL</scope>
  <id>demo-cuongquach2</id>
  <description>demo-cuongquach2</description>
  <username>demo-cuongquach2</username>
  <privateKeySource class="com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource">
    <privateKey>-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAwIkFdxQgWH3FSlxz0naZscbBdbT7pqDu471IKvBNxUetTqJI
3fXhRFpsJRLHYAuimm4Px6Q1rFcIYunGpBbHgPdDvsl/0p6Agr7jTsuRtj5RH4Oj
TSzqlFczDu5zdmMhit1P0WHkzN05Yeuzv2pboNXPUjFinnV9vQCP4d6WlGPkKL/4
BcOMtwnrqycgHCuGogrRkhAkq0Mc4Fix9ZFZn1mJ9+oDmjLfq/0vL9N9NrqqNYq4
X4rh9TZuQrVFNfv8n5od+36YLW48HgcJUiBh9m61RH4SteA9nHyAJZNBpQLUOrXp
swIn5SHwymw6gyYSDfs2E64zsIA0H01Tm8RYlQIDAQABAoIBAQCYH2sfA9rusCji
sRueLbEQAq82VlIC/OLjM9nCe22nMxPermCOZ0ieXidWP3kiDO9jvxRetALocTei
F32ohosI/dUb+E8zVaLKKxKkXjl52dD06mhrgNKzdBZWdNbrsjV9Z5E6KXPC3gQJ
t1alJd7RvD17fqOh+cjoPXpxhxJImSeOxEieua56wtaGyAzu3HFYGxlajIzN5+7x
lEw52kAy3tqYr4wzeqprMmikIeGGO7vh8vkGomNV30rc4+5GNu9OFMkm8DRTiRlN
7nwAj28CZIt3ZZXDErR75/iIAxhwI/sdkThrQvmIgXJM2tPHHS7tl8YsIZ87srH0
eaP57xIhAoGBAPbSmO7SraxOUxx3cQn+vahUZb5RkdM9Zii7Px0gcB/KcPuTHRus
KY4GE4RyeguqAQEr3UA2k6Ynqt7F9zEJjaZ9XZVbjbVDunkxpqbLzmBQRsVsTEJh
38ANlarr0k2X43J1twmUqomJQReXi3zam9suG3oVCLpGuo77k8uxkxsdAoGBAMex
r0IZTTFfgcoi6fvgzN/O+FaLiY8K7pqpq1uuKiEuSLFmGZYeOakveP8OHsaoidAL
9mCOCq2YZ7BaePAEovOpPTHszAsLNvuwZKqmp/4rXdnODezcbnHoSP3p+dNhfPa0
6VR8UaHuU5oq4Mb7m4NJ25ev67ci22y2yHHF8EHZAoGAdDN1uIoLJaHCUxaQa0o4
8/S36b/xTWgMnoR5FDdfUjg2tNnvzEVjUu/dZG+YscEZs/l4snB/Vqw6L6M32yhK
PeWrl1OBBaObOM99S+2LfaCNkQiJZn85netHWS6o1cr6U7rDr4kEOLgbowW/r8oj
si6k1PbuIvSFhCdAz5cMUKkCgYEAvILtKl3ONDyvvk0lS0SUwvaUEscY7XLpehGP
lTWdycLylp0GrGMOFbud4lDHFsxFhKO2SsHsLKJByAYwQoxt880g2r9qg0Zr+j8z
WLGIxvTTXOga1y3kCR25whEdaMGQASkZV0sgmNfuDgxKMy2USeTwKorE3xZFw6Pt
JxIvU0kCgYBPLIkCAqACXJiWYsnSPkzdOxLpSnjeT4DG+njyC/cWG5uq9oyRQjxo
V+Cyh98k3KcMdf/PSoRVMnBk9XkRG+vCJZ0TXI9M5kF7LtBf1KO4vDXcf6Z6shu6
FdyrJ0hQ8rQZr5GXN/2fJa7w5x6qKWzSprC2j1QjyL1f8Dk1zFekaP==
-----END RSA PRIVATE KEY-----</privateKey>
  </privateKeySource>
</com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey>

Kế đến bạn cần chạy cú pháp lệnh sau để tạo mới cả 2 thông tin chứng thực (Credential) trên Jenkins. Để chạy lệnh chương trình với ‘jenkins-cli‘ bạn cần có thông tin user được phân quyền đầy đủ tương tác với Jenkins trước đã nhé. Ví dụ : user ‘jenkins‘ có quyền hạn cấu hình thông tin Credential trên Jenkins.

# java -jar /usr/bin/jenkins-cli.jar -auth jenkins:Zc9tggGFPDS4Eaa -s https://jenkins.cuongquachlab.com/ create-credentials-by-xml system::system::jenkins _ < /opt/credential-pass.xml
# java -jar /usr/bin/jenkins-cli.jar -auth jenkins:Zc9tggGFPDS4Eaa -s https://jenkins.cuongquachlab.com/ create-credentials-by-xml system::system::jenkins _ < /opt/credential-key.xml

Sau đó bạn kiểm tra trên giao diện quản lý dịch vụ Jenkins sẽ thấy 2 thông tin Credential mới tạo như hình :

2. Thao tác xoá Credential trên Jenkins với CLI

Bạn chỉ cần chạy cú pháp với chương trình ‘jenkins-cli‘ như dưới kèm thông tin ID Credential mà bạn muốn xoá.

# java -jar /usr/bin/jenkins-cli.jar -auth jenkins:Zc9tggGFPDS4Eaa -s https://jenkins.cuongquachlab.com/ delete-credentials system::system::jenkins _ demo-cuongquach
# java -jar /usr/bin/jenkins-cli.jar -auth jenkins:Zc9tggGFPDS4Eaa -s https://jenkins.cuongquachlab.com/ delete-credentials system::system::jenkins _ demo-cuongquach2

Nguồn: https://cuongquach.com/

Previous articleNhững điều cần lưu ý khi xây dựng SLO trong SRE !
Next articleCác cách bảo vệ bạn chống lại Hacker – Phần 1
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !