Orang-orang yang boleh dipercayai apt_repository modul boleh digunakan untuk menambah dan membuang repositori pakej dan PPA pada hos Ubuntu anda dengan mudah. Anda juga boleh mengemas kini cache repositori pakej APT menggunakan Ansible apt_repository modul.
Artikel ini akan menunjukkan kepada anda cara menguruskan repositori pakej Ubuntu dan PPA menggunakan Ansible apt_repository modul. Oleh itu, mari kita mulakan.
Prasyarat
Sekiranya anda ingin mencuba contoh yang disertakan dalam artikel ini:
1) Anda mesti memasang Ansible di komputer anda.
2) Anda mesti mempunyai hos Ubuntu yang dikonfigurasi untuk automasi Ansible.
Terdapat banyak artikel mengenai LinuxHint yang dikhaskan untuk Memasang Ansible dan mengkonfigurasi host untuk automasi Ansible. Anda boleh menyemak artikel ini sekiranya anda memerlukan maklumat tambahan.
Menyiapkan Direktori Projek
Sebelum kita memulakan, adalah idea yang baik untuk membuat struktur direktori projek, hanya untuk memastikan keadaan lebih teratur.
Untuk membuat direktori projek apt-ppa-repo / dan semua subdirektori yang diperlukan (dalam direktori kerja semasa anda), jalankan arahan berikut:
$ mkdir -pv apt-ppa-repo / buku main
Setelah direktori projek dibuat, arahkan ke direktori projek, seperti berikut:
$ cd apt-ppa-repo
Buat a tuan rumah fail inventori, seperti berikut:
hos $ nano
Tambahkan nama IP atau DNS host (vm7.angguk.com dan vm8.angguk.com, dalam kes saya) hos Ubuntu anda dalam fail inventori.
Setelah selesai, simpan fail dengan menekan
Buat fail konfigurasi Ansible dalam direktori projek, seperti berikut:
$ nano tidak boleh dimakan.cfg
Taipkan baris berikut di tidak boleh dimakan.cfg fail:
[lalai]inventori = tuan rumah
host_key_checking = Salah
Setelah selesai, simpan fail dengan menekan
Pada ketika ini, direktori projek akan kelihatan seperti berikut:
pokok $
Seperti yang anda lihat, hos Ansible boleh diakses. Oleh itu, kita boleh beralih ke bahagian seterusnya dari artikel ini.
$ ansible all -u ansible -m ping
Menambah Repositori Pakej
Di bahagian ini, saya akan menunjukkan kepada anda cara menambahkan repositori pakej di Ubuntu menggunakan Ansible.
Pertama, buat buku main baru yang dipanggil tambah_repo.keladi di dalam buku permainan / direktori, seperti berikut:
Buku main $ nano / add_repo.keladi
Taipkan baris berikut di tambah_repo.keladi fail:
- tuan rumah: semuapengguna: tidak boleh dimakan
menjadi: Benar
tugas:
- name: Pastikan repositori semesta diaktifkan
apt_repository:
repo: deb http: // arkib.ubuntu.com / ubuntu fokus alam semesta
nyatakan: sekarang
update_cache: Betul
Setelah selesai, simpan fail dengan menekan
Di sini, repo pilihan untuk apt_repository modul digunakan untuk menentukan garis repositori pakej APT (dalam kes saya, deb http: // arkib.ubuntu.com / ubuntu fokus alam semestarepositori pakej yang ingin anda tambahkan (dalam kes saya, Ubuntu 20.04 LTS rasmi Alam semesta repositori).
Untuk mengetahui lebih lanjut mengenai format baris repositori pakej APT, baca Fail Konfigurasi Repositori Pakej Ubuntu bahagian artikel Cara Menggunakan Pengurus Pakej APT di Ubuntu 20.04 LTS.
Semasa saya menambah repositori pakej baru di sini, negeri adalah hadir.
The kemas kini_cache pilihan sama ada boleh Betul/iya atau Salah/tidak.
Sekiranya kemas kini_cache ditetapkan ke Betul, Ansible akan mengemas kini cache repositori pakej APT setelah menambahkan repositori pakej.
Sekiranya kemas kini_cache ditetapkan ke Salah, Ansible tidak akan mengemas kini cache repositori pakej APT.
Di sini, saya mahu repositori pakej APT dikemas kini sebaik sahaja repositori pakej baru ditambahkan. Jadi, saya menetapkan kemas kini_cache ke Betul.
Sekarang, jalankan tambah_repo.keladi buku permainan, seperti berikut:
$ ansible-playbook playbooks / add_repo.keladiSeperti yang anda lihat, buku main berjaya dijalankan.
Untuk mengesahkan bahawa repositori pakej (dalam kes saya, Ubuntu 20.04 LTS Alam semesta repositori) ditambahkan, jalankan arahan berikut:
$ grep --color -R 'http: // arkib.ubuntu.com '/ etc / apt / sumber.senarai/ etc / apt / sumber.senarai.d / *.senarai
Seperti yang anda lihat, fail baru telah dibuat di / etc / apt / sumber.senarai.d / direktori (1) dan Ubuntu 20.04 LTS Alam semesta repositori pakej telah ditambah (2).
Secara lalai, Ansible akan menghasilkan a .senarai fail di / etc / apt / sumber.senarai.d / direktori, bergantung pada baris repositori APT.
Sekiranya anda ingin memilih nama fail tertentu (i.e. ubuntu-semesta.senarai) untuk repositori anda, anda boleh menentukan nama fail menggunakan nama fail pilihan untuk apt_repository modul di anda tambah_repo.keladi buku permainan, seperti yang ditunjukkan dalam tangkapan skrin di bawah.
Sekarang, jalankan tambah_repo.keladi buku main lagi.
$ ansible-playbook playbook / add_repo.keladi
Seperti yang anda lihat, nama fail adalah nama yang sama dengan yang saya nyatakan.
$ grep --color -R 'http: // arkib.ubuntu.com '/ etc / apt / sumber.senarai/ etc / apt / sumber.senarai.d / *.senarai
Membuang Repositori Pakej
Di bahagian ini, saya akan menunjukkan kepada anda cara membuang repositori pakej yang ada dari hos Ubuntu anda menggunakan Ansible.
Buku panduan untuk membuang repositori pakej hampir sama dengan menambahkan repositori pakej. Jadi, anda boleh menyalinnya tambah_repo.keladi fail buku main dan ubah sedikit. Ini sangat mudah dilakukan.
Pertama, salin tambah_repo.keladi failkan ke buang_repo.keladi, seperti berikut:
Buku main $ cp -v / add_repo.buku permainan yaml / remove_repo.keladi
Edit buang_repo.keladi buku permainan, seperti berikut:
Buku main $ nano / remove_repo.keladi
Ubah nyatakan: sekarang ke nyatakan: tidak hadir, seperti yang ditandakan pada tangkapan skrin di bawah. Inilah satu-satunya perubahan yang perlu anda buat.
Setelah selesai, simpan fail dengan menekan
Jalankan buang_repo.keladi buku permainan, seperti berikut:
$ ansible-playbook playbooks / remove_repo.keladi
Seterusnya, jalankan arahan berikut untuk mengesahkan sama ada repositori pakej yang ingin anda hapus sebenarnya telah dikeluarkan.
$ grep --color -R 'http: // arkib.ubuntu.com '/ etc / apt / sumber.senarai/ etc / apt / sumber.senarai.d / *.senarai
Seperti yang anda lihat, Ubuntu 20.04 LTS rasmi Alam semesta repositori pakej yang saya tambah sebelumnya telah dikeluarkan.
NOTA: Abaikan mesej ralat. Mesej ini bermaksud bahawa / etc / apt / sumber.senarai.d / direktori kosong. Sekiranya anda ingin membuang mesej ralat, tambah a 2> / dev / null pada akhir arahan, seperti berikut. Kesalahan harus dihapus setelah menjalankan perintah ini.
$ grep --color -R 'http: // arkib.ubuntu.com '/ etc / apt / sumber.senarai/ etc / apt / sumber.senarai.d / *.senarai 2> / dev / null
Menambah PPA
Di bahagian ini, saya akan menunjukkan kepada anda cara menambahkan PPA pada hos Ubuntu anda menggunakan Ansible.
Saya akan menambah osomon / nodejs-10.19-fokus Node.js 10.19 PPA untuk Ubuntu 20.04 LTS dalam contoh saya.
Pertama, buat buku permainan baru tambah_ppa.keladi, seperti berikut:
Buku main $ nano / add_ppa.keladi
Tambahkan baris berikut di tambah_ppa.keladi buku permainan:
- tuan rumah: semuapengguna: tidak boleh dimakan
menjadi: Benar
tugas:
- nama: Tambah Node.js 10.19 PPA
apt_repository:
repo: ppa: osomon / nodejs-10.19-fokus
nyatakan: sekarang
update_cache: Betul
validate_certs: Salah
Setelah selesai, simpan tambah_ppa.keladi buku main dengan menekan
Di sini, repo pilihan untuk apt_repository modul digunakan untuk menambahkan PPA osomon / nodejs-10.19-fokus (1).
Pastikan anda menambah ppa: sebelum nama PPA, i.e. ppa: osomon / nodejs-10.19-fokus.
Sebilangan besar PPA menggunakan sijil yang ditandatangani sendiri, jadi Ansible tidak dapat mengesahkannya untuk anda, dan mereka mungkin salah semasa anda menjalankan buku main.
Anda boleh menetapkan mengesahkan_certs ke Salah untuk melangkau pengesahan sijil untuk PPA yang anda tambahkan (2). Inilah yang telah saya lakukan dalam contoh dalam artikel ini.
NOTA: Anda juga boleh menetapkan mengesahkan_certs ke Salah untuk melangkau pengesahan pensijilan semasa menambahkan repositori pakej pihak ketiga.
Jalankan tambah_ppa.keladi buku permainan, seperti berikut:
$ ansible-playbook buku main / add_ppa.keladi
Seperti yang anda lihat, baru .senarai fail untuk PPA osomon / nodejs-10.19-fokus telah dibuat di / etc / apt / sumber.senarai.d / direktori (1).
Dengan melihat isi kandungan ppa_osomon_nodejs_10_19_focal_focal.senarai fail, saya dapat mengesahkan bahawa PPA telah ditambahkan (2).
$ pokok / etc / apt / sumber.senarai.d /$ cat / etc / apt / sumber.senarai.d / ppa_osomon_nodejs_10_19_focal_xenial.senarai
Mengeluarkan PPA
Anda boleh membuang PPA dengan cara yang sama seperti yang kami hapus repositori pakej di bahagian awal artikel ini.
Salin sahaja app_ppa.keladi buku permainan ke buang_ppa.keladi, seperti berikut:
Buku main $ cp -v / add_repo.buku permainan yaml / remove_repo.keladi
Sekarang, buka buang_ppa.keladi buku permainan, seperti berikut:
Buku main $ nano / remove_ppa.keladi
Seterusnya, ubah garis nyatakan: sekarang ke nyatakan: tidak hadir, seperti yang ditandakan pada tangkapan skrin di bawah.
Setelah selesai, simpan buang_ppa.keladi buku main dengan menekan
Jalankan buang_ppa.keladi buku permainan, seperti berikut:
$ ansible-playbook buku main / add_ppa.keladi
Seperti yang anda lihat, ppa_osomon_nodejs_10_19_focal_focal.senarai fail untuk osomon / nodejs-10.19-fokus PPA tidak lagi tersedia di / etc / apt / sumber.senarai.d / direktori. Jadi, PPA osomon / nodejs-10.19-fokus telah dikeluarkan.
$ pokok / etc / apt / sumber.senarai.d /
Menukar Nama Kad PPA
Kadang-kadang, PPA yang anda cuba tambahkan pada hos Ubuntu anda tidak menyokong versi Ubuntu yang anda jalankan. Sekiranya demikian, anda perlu menentukan nama kod versi Ubuntu secara manual semasa menambahkan PPA.
Katakan anda menjalankan Ubuntu 20.04 dengan nama kod fokus dan anda cuba menambahkan PPA xyz, tetapi PPA xyz hanya menyokong Ubuntu 16.04 nama kod LTS xenial. Sekiranya anda cuba menambahkan PPA xyz, anda akan mendapat ralat, kerana PPA tidak mempunyai pakej untuk Ubuntu 20.04 nama kod fokus. Tetapi, jika anda menentukan Ubuntu 16.04 nama kod LTS xenial semasa menambah PPA, anda tidak akan menerima sebarang kesalahan. Anda mungkin dapat memasang pakej yang anda inginkan dari PPA dengan cara ini, walaupun tidak menyokong versi eksplisit Ubuntu yang sedang anda jalankan.
Mari lihat contoh.
Pertama, salin tambah_ppa.keladi fail buku main ke tukar_ppa_kodenama.keladi, seperti berikut:
Buku main $ cp -v / add_ppa.buku permainan yaml / change_ppa_codename.keladi
Seterusnya, buka tukar_ppa_kodenama.keladi fail, seperti berikut:
Buku permainan $ nano / change_ppa_codename.keladi
Di sini, yang mesti anda buat ialah menambahkan nama kod pilihan dengan nama kod Ubuntu yang anda mahukan (i.e. nama kod: xenial), seperti yang ditunjukkan dalam tangkapan skrin di bawah.
Setelah selesai, simpan tukar_ppa_kodenama.keladi fail dengan menekan
Jalankan tukar_ppa_kodenama.keladi buku permainan, seperti berikut:
$ ansible-playbook playbooks / change_ppa_codename.keladiNOTA: Saya mendapat ralat kerana PPA yang saya tambahkan di sini hanya menyokong Ubuntu 20.04 LTS. Anda boleh mengabaikan mesej ini.
Seperti yang anda lihat, PPA telah ditambahkan dan nama kod Ubuntu xenial berada di barisan repositori pakej APT.
Kesimpulannya
Artikel ini menunjukkan kepada anda cara mengurus (menambah / membuang) repositori pakej Ubuntu dan PPA menggunakan Ansible.
Orang-orang yang boleh dipercayai apt_repository modul digunakan untuk menguruskan repositori pakej Ubuntu dan PPA. Artikel ini menjelaskan semua pilihan penting dari apt_repository modul Ansible.
Untuk maklumat lebih lanjut, periksa halaman dokumentasi Ansible rasmi apt_repository.