Tạo/xoá thông tin Credential trên Jenkins bằng CLI – Cuongquach.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.
Contents
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/