web-dev-qa-db-ja.com

Ansibleを使用したyum .repoファイルのインポート/追加

Ansibleを使用してカスタムリポジトリからMariaDB(または任意のソフトウェア)をインストールしようとしていますが、yum/ yum_repository モジュールを使用して.repoファイルをインポートする方法がわかりません。

アンシブル

これが私のプレイブックです:

-
    hosts: all
    become: true
    remote_user: root
    tasks:
        -
            name: set system timezone
            timezone:
                name: America/Toronto
        -
            name: add custom repository
            yum_repository:
                name: centos_o
                description: custom repositories
                baseurl: http://example.net/mirror/centos_o.repo
        -
            name: ensure mariadb is installed
            yum:
                name: mariadb-server-5.5.*
                state: installed

私はincludemetalinkbaseurlmirrorlistをすべて試しましたが、うまくいきませんでした。また、GPGキーステップがありませんが、リポジトリを適切に追加することもできません。

Centos_o.repoファイルは次のようになります。

# JENKINS
[jenkins]
name=CentOS-$releasever - JENKINS
baseurl=http://example.net/mirror/jenkins/
enabled=0
gpgcheck=1

# MariaDB 5.5
[mariadb]
name=CentOS-$releasever - MariaDB
baseurl=http://example.net/mirror/mariadb/yum/5.5/centos$releasever-AMD64/
enabled=0
gpgcheck=1

# MariaDB 10.0
[mariadb]
name=CentOS-$releasever - MariaDB
baseurl=http://example.net/mirror/mariadb/yum/10.0/centos$releasever-AMD64/
enabled=0
gpgcheck=1

シェル

これは、Ansibleに変換しようとしているシェルスクリプトバージョンです。

yum clean all
yum-config-manager --add-repo=http://example.net/mirror/centos_o.repo
yum-config-manager --enable mariadb
rpm --import http://example.net/mirror/mariadb/RPM-GPG-KEY-MariaDB

何か違いがある場合は、CentOSボックスでVagrantの Ansible local プロビジョナーを使用してこれを実行しています。

4

それは 現れる あなたが正しいということです、彼らはあなたが何を求めているかを提供しません。それらのモデルは、yum_repository:ファイルに既にあるbaseurl=値のそれぞれを使用して、.repoを3回呼び出すようなモデルです。

したがって、状況に応じて、command:を使用して、シェルと同じようにyum-config-manager --add-repoを実行することをお勧めします。唯一の問題は、yum-config-manager --add-repo=がべき等でない場合です。その場合、同じリポジトリファイルが実行されるたびに繰り返し追加されないように、command:を手動で保護する必要があります。 。

1