Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Bagaimana Memulai Dengan Rails Console GitLab untuk Administrasi Tingkat Lanjut

Posted on August 18, 2022

Konsol Rails

GitLab menyediakan terminal interaktif yang memungkinkan Anda memanipulasi data secara langsung di instans GitLab Anda. Anda dapat menggunakannya untuk mengekstrak informasi, memecahkan masalah, dan melakukan tugas administrasi lanjutan yang tidak didukung di UI web GitLab atau API.

Untuk mengakses konsol, Anda harus menjalankan server GitLab yang dikelola sendiri. Anda akan memerlukan hak pengguna super pada mesin yang menghosting lingkungan Anda. Konsol menyediakan kontrol tanpa hambatan atas GitLab dan data Anda sehingga hanya administrator tepercaya yang boleh menggunakannya. Tindakan dapat mengesampingkan pengamanan normal dan menyebabkan penghancuran data yang tidak diinginkan.

Memulai Konsol

Metode yang digunakan untuk memulai konsol bergantung pada jenis penginstalan GitLab yang Anda jalankan. Distribusi omnibus yang diinstal dari manajer paket mendukung perintah berikut:

$ sudo gitlab-rails console

Gunakan alternatif ini jika Anda telah menginstal GitLab secara manual dari sumber:

$ sudo -u git -H bundle exec rails console -e production

Konsol juga tersedia untuk Instance GitLab cloud-native berjalan di Kubernetes. Gunakan Kubectl untuk melampirkan ke Pod kotak alat GitLab dan mulai sesi konsol:

$ kubectl –namespace gitlab exec -it toolbox — /srv/gitlab/bin/rails console

GitLab versi yang lebih lama dari 14.2 akan memiliki Pod yang menjalankan tugas alih-alih kotak alat . Gantikan task-runner ke dalam perintah yang ditunjukkan di atas jika Anda menjalankan salah satu rilis ini.

Konsol Rails memerlukan waktu beberapa detik untuk memulai. Ini akan menampilkan ringkasan versi Ruby, GitLab, dan PostgreSQL Anda sebelum menjatuhkan Anda ke terminal prompt.

$ sudo gitlab-rails console ——————– ————————————————– ———- Ruby: ruby ​​2.7.5p203 (revisi 2021-11-24 f69aeb8314) [x86_64-linux] GitLab: 15.0.0 (8a186dedfc1) FOSS GitLab Shell: 14.3.0 PostgreSQL: 12.10 — ————————————————– ——–[ boot dalam 22.48s ] Memuat lingkungan produksi (Rails 6.1.4.7) irb(main):001:0>

Anda dapat mulai mengeluarkan perintah Ruby ketika Anda melihat prompt muncul.

Penggunaan Dasar

Konsol menyediakan akses ke lingkungan Ruby on Rails GitLab. Objek dalam cakupan memungkinkan Anda mengambil, memperbarui, dan membuat kueri data di database GitLab Anda. Pemahaman dasar tentang Ruby dan Rails akan membantu Anda memulai.

Rails menggunakan pola Rekaman Aktif untuk menyediakan metode pemetaan data statis pada objek. Anda dapat memanggil metode berikut untuk mengambil pengguna dengan nama pengguna mereka:

$ demo = User.find_by_username(“demo”) #

Anda dapat melihat properti objek yang diambil dengan memeriksa atributnya:

$ pp demo.attributes {“id “=>1, “email”=>”demo@example.com”, …

Untuk mengambil properti tertentu, akses dengan nama:

$ demo.email demo@example.com

Anda dapat menggunakan metode Rails untuk mengambil beberapa dengan mudah instance objek yang cocok dengan kueri:

$ admins = User.where(admin: true).where(`email like ?`, `%@example.com`)

Ini mengambil semua pengguna example.com dengan izin administrator GitLab.

You dapat mengubah properti instance objek dengan menetapkan nilai baru dan memanggil save:

$ demo.email = “example@example.com” $ demo.save

Metode save akan memeriksa status objek yang valid sebelum menyimpannya ke database. Anda dapat secara eksplisit menonaktifkan validasi dalam situasi di mana Anda ingin memaksakan perubahan tertentu untuk diterapkan:

$ demo.save!(validate: false)

Ini hanya boleh digunakan untuk menyelidiki masalah di mana UI atau API web GitLab tiba-tiba menolak data.

Common Tasks

Konsol GitLab Rails memiliki aplikasi tanpa batas karena Anda dapat bekerja dengan aspek apa pun dari instans GitLab Anda. Berikut adalah beberapa operasi yang berguna untuk membantu Anda memulai.

Temukan Metode yang Tersedia Pada Objek

Pengalaman konsol dapat menjadi hal yang menakutkan bagi pendatang baru, terutama jika Anda tidak terlalu familiar dengan Rails. Dokumentasi di konsol relatif jarang tetapi Anda dapat menemukan fungsionalitas dengan mengambil daftar metode yang terkait dengan setiap objek:

$ User.methods [:before_add_for_closed_issues, :before_add_for_closed_issues=, :after_add_for_closed_issues, …]

Anda dapat menggabungkan ini dengan grep dengan cepat filter ke metode dengan root tertentu:

$ Project.methods.grep(/find/) [:find_by_runners_token, :find_by_url, :find_by_full_path, …]

Ini mengungkapkan bahwa Anda dapat mengambil proyek berdasarkan jalurnya dengan perintah berikut:

$ Project.find_by_full_path(“/user/project”)Ambil Proyek Dengan Masalah dan Gabungkan Permintaan

Pertama gunakan objek Proyek untuk mendapatkan proyek dengan mencocokkan atribut unik seperti ID, jalur, atau URL-nya:

$ project = Project .find_by_full_path(“/user/project”)

Sekarang Anda dapat mengakses masalah proyek dan menggabungkan permintaan melalui properti relasinya:

# Dapatkan semua masalah $ project.issues.all # Dapatkan edisi pertama $ project.issues.first # Dapatkan spesifik saya rge request oleh project-level ID $ project.merge_requests.find_by(iid: 10)Retrieve a CI Pipeline

Objek Pipeline bersarang di dalam CI namespace:

# Dapatkan pipeline dengan ID 100 $ pipeline = Ci::Pipeline.find( 100) # Dapatkan build (pekerjaan) yang terkait dengan pipeline $ jobs = pipeline.buildsReset Kata Sandi Admin

Konsol dapat menyelamatkan Anda jika akun Anda terkunci. Ambil objek pengguna yang terpengaruh lalu atur ulang kata sandinya:

$ user = User.find_by_username(“demo”) $ user.password = “abc123” $ user.password_confirmation = “abc123” $ user.saveBuat Proyek Read-Only

GitLab mendukung read -only proyek yang membuat repositori tetap dapat diakses tetapi mencegah modifikasi dibuat. Mode baca-saja harus diaktifkan menggunakan konsol:

$ project = Project.find_by_full_path(“/user/project”) $ project.repository_read_only = true $ project.saveManually Jalankan Pipeline Schedule

Scheduled pipeline dapat langsung dijalankan menggunakan konsol. Ini terkadang dapat membantu untuk men-debug masalah yang tidak sepenuhnya dilaporkan di UI dan API.

Pertama ambil objek PipelineSchedule:

$ schedule = Ci::PipelineSchedule.find_by(id: 10)

Berikutnya ambil pengguna yang ingin Anda jalankan pipelinenya as:

$ user = User.find_by_username(“demo”)

Sekarang gunakan perintah ini untuk memulai menjalankan melalui jadwal:

$ Ci::CreatePipelineService.new(schedule.project, user, ref: schedule.ref).execute! (:schedule, abaikan_skip_ci: true, save_on_errors: false, schedule: schedule)

Ini membuat pipeline baru dari jadwal dan memulai eksekusinya.

Enable Feature Flags

Beberapa fitur GitLab pra-rilis dilindungi di belakang flag fitur. Bendera juga terkadang digunakan untuk mengizinkan pengaktifan kembali sementara dari kapabilitas yang tidak digunakan lagi.

Konsol adalah satu-satunya mekanisme yang dapat mengaktifkan fitur bendera. Teruskan ID flag fitur ke Feature.enable() function:

$ Feature.enable(:certificate_based_clusters)

Perubahan langsung berlaku tanpa memulai ulang GitLab. Contoh ini mengaktifkan kembali dukungan untuk klaster Kubernetes berbasis sertifikat di GitLab 15.0.

Anda dapat memeriksa apakah suatu tanda diaktifkan dengan Feature.enabled?() call:

$ Feature.enabled?(:certificate_based_clusters) => true

Untuk menonaktifkan tanda fitur, teruskan ID-nya ke metode Feature.disable():

$ Feature.disable(:certificate_based_clusters)Tes Pengiriman Email

Konsol memungkinkan Anda langsung mengirim pesan uji untuk memverifikasi sistem email keluar Anda berfungsi:

$ Notify.test_email(“example@example. com”, “Test subject”, “Test body”).deliver_now

Email akan segera dikirim menggunakan mekanisme yang sama seperti pesan yang dibuat oleh fungsi aplikasi GitLab.

Menjalankan Skrip Ruby Dengan Rails Runner

Sesi konsol interaktif tidak selalu diperlukan. Rails Runner adalah alternatif yang mempermudah menjalankan skrip Ruby dalam konteks lingkungan GitLab Anda.

Gunakan perintah gitlab-rails runner untuk mengeksekusi beberapa kode Ruby. Skrip Anda dapat mereferensikan variabel dan objek GitLab yang sama yang tersedia untuk sesi konsol Rails.

$ Sudo gitlab-rails runner “puts User.find_by_username(`demo`).email”

Rails akan menjalankan skrip yang Anda berikan dan kemudian mengakhiri proses. Contoh yang ditunjukkan di atas memancarkan alamat email pengguna GitLab yang disebut demo. Alternatif ini menjalankan kode Ruby yang disediakan sebagai file:

$ sudo gitlab-rails runner /scripts/gitlab-rails-script.rb

Script yang disimpan sebagai file Ruby harus dapat diakses oleh pengguna git Unix. GitLab Rails selalu dieksekusi sebagai git:git sehingga skrip yang dimiliki oleh pengguna lain dapat menghasilkan kesalahan. Jalur file yang tidak valid akan ditafsirkan sebagai kode Ruby untuk dijalankan, menghasilkan kesalahan sintaks yang dapat menutupi masalah sebenarnya:

$ Sudo gitlab-rails runner /scripts/invalid-file.rb Harap tentukan perintah Ruby yang valid atau jalur skrip untuk berlari. Jalankan `rails runner -h` untuk bantuanSummary

Konsol GitLab Rails adalah utilitas yang kuat untuk berinteraksi langsung dengan instans GitLab Anda. Ini bisa menjadi alat debugging yang sangat berharga ketika Anda mengalami masalah dengan instalasi Anda. Konsol juga memungkinkan Anda membuat skrip tugas admin menggunakan kode Ruby biasa, alih-alih mengandalkan GitLab API. Beberapa operasi seperti pengaktifan flag fitur hanya dapat dicapai dengan console.

Dengan kekuatan ada tanggung jawab. Konsol ini mampu mengabaikan pagar pembatas dan menerima operasi dalam konteks yang tidak dirancang untuknya. Penggunaan yang salah dapat menyebabkan kehilangan data dan perilaku yang tidak diharapkan. Dengan menggunakan konsol, Anda membuka tutup basis kode GitLab dan operasi internalnya. Metode yang tersedia dan efeknya tidak memiliki jaminan dukungan dan dapat berubah tanpa peringatan.

Itulah berita seputar Bagaimana Memulai Dengan Rails Console GitLab untuk Administrasi Tingkat Lanjut, semoga bermanfaat. Disadur dari HowToGeek.com.

Terbaru

  • Caranya Ngebangun Website Directory dengan Traffic Tinggi dalam Seminggu!
  • Cara Mengembangkan Channel YouTube Shorts Tanpa Wajah
  • Inilah Cara Menghitung Diskon Baju Lebaran Biar Nggak Bingung Saat Belanja di Mall!
  • Cara Jitu Ngebangun Bisnis SaaS di Era AI Pakai Strategi Agentic Workflow
  • Inilah Rincian Gaji Polri Lulusan Baru 2026, Cek Perbedaan Jalur Akpol, Bintara, dan Tamtama Sebelum Daftar!
  • Inilah 5 Channel YouTube Membosankan yang Diam-diam Menghasilkan Banyak Uang
  • Inilah Cara Pakai Google Maps Offline Biar Mudik Lebaran 2026 Nggak Nyasar Meski Tanpa Sinyal!
  • Inilah Alasan Mahkamah Agung Tolak Kasasi Google, Denda Rp202,5 Miliar Resmi Menanti Akibat Praktik Monopoli
  • Inilah Cara Daftar dan Syarat SPMB SMK Boarding Jawa Tengah 2026, Sekolah Gratis Sampai Lulus!
  • Inilah Daftar Sekolah Kedinasan 2026 untuk Lulusan SMK, Bisa Kuliah Gratis dan Berpeluang Besar Langsung Jadi CPNS!
  • Inilah Pajak TER: Skema Baru PPh 21 yang Nggak Bikin Pusing, Begini Cara Hitungnya!
  • Inilah Jadwal Resmi Jam Buka Tol Jogja-Solo Segmen Prambanan-Purwomartani Saat Mudik Lebaran 2026
  • Inilah Cara Mendapatkan Witherbloom di Fisch Roblox, Rahasia Menangkap Ikan Paling Sulit di Toxic Grove!
  • Kenapa Indomart Point Bisa Kalahkan Bisnis Kafe?
  • Inilah Cara Mendapatkan Rotten Seed di Fisch Roblox, Lokasi Rahasia di Toxic Grove Buat Unlock Toxic Lotus!
  • Inilah Cara Zakat Crypto Kalian Bisa Jadi Pengurang Pajak Berdasarkan Aturan Resmi Pemerintah!
  • Inilah Perbandingan Airwallex vs Payoneer 2026: Jangan Sampai Profit Kalian Ludes Gara-Gara Biaya Admin!
  • Inilah Roadmap 7 Tahap Bangun Bisnis Digital dari Nol Biar Nggak Cuma Putar-Putar di Tempat!
  • Inilah Cara Tetap Gajian dari YouTube Meski View Masih Ratusan, Penasaran?
  • Inilah Alasan Akun TikTok Affiliate GMV 270 Juta Kena Banned Permanen!
  • Inilah Bahaya Astute Beta Server APK, Jangan Sembarang Klik Link Download FF Kipas 2026!
  • Inilah Bahaya Nonton Film di LK21 dan IndoXXI, Awas Data Pribadi dan Saldo Rekening Kalian Bisa Ludes!
  • Inilah Kronologi & Video Lengkap Kasus Sejoli Tambelangan Sampang Viral, Ternyata Gini Awal Mulanya!
  • Inilah Alasan Kenapa Koin Nego Neko Shopee Nggak Bisa Dipakai Bayar Full dan Cara Rahasia Dapetinnya!
  • Inilah Cara Menjawab Pertanyaan Apakah di Sekolahmu Sudah Ada IFP/PID dengan Benar dan Profesional
  • Inilah Fakta Isu Roblox Diblokir di Indonesia 2026, Benarkah Akan Ditutup Total?
  • Inilah Penyebab dan Cara Mengatasi FF Kipas My ID Verify UID Biar Akun Tetap Aman
  • Inilah Deretan HP RAM 8GB Harga di Bawah 2 Juta Terbaik 2026, Spek Dewa Tapi Nggak Bikin Kantong Jebol!
  • Contoh Cara Buat SK Panitia TKA 2026
  • Inilah Cara Download Point Blank ID Versi Terbaru 2026, Gampang Banget Ternyata!
  • Why Does PowerPoint Underline Hyperlinks? Here is How to Remove Them
  • AI Bug Hunting with Semgrep
  • What is the Excel Power Query 0xc000026f Error?
  • How to Build Your Own Homelab AI Supercomputer 2026
  • How to Enable SSH in Oracle VirtualBox for Beginners
  • 6 Innovative AI Tools for 2026: From Voice Cloning to Advanced Automation Systems
  • How to Run Hunter Alpha: The Free 1 Trillion Parameter AI Agent on OpenClaw
  • Build Your Own Self-Improving AI: A Guide to Andrej Karpathy’s Autoresearch and Claude Code
  • Build DIY AI Assistant with Copilot SDK
  • How to Automate Your Daily Routine Using OpenClaw + Claude Code Desktop’s New Scheduled Tasks and Loop Features
  • Apa itu Spear-Phishing via npm? Ini Pengertian dan Cara Kerjanya yang Makin Licin
  • Apa Itu Predator Spyware? Ini Pengertian dan Kontroversi Penghapusan Sanksinya
  • Mengenal Apa itu TONESHELL: Backdoor Berbahaya dari Kelompok Mustang Panda
  • Siapa itu Kelompok Hacker Silver Fox?
  • Apa itu CVE-2025-52691 SmarterMail? Celah Keamanan Paling Berbahaya Tahun 2025

©2026 emka.web.id | Design: Newspaperly WordPress Theme