Как я могу добавить репозиторий с файлом .repo с помощью ansible?

Если ваш вопрос конкретно как обработать текстовый файл и архивированный текстовый файл одной командой, см. другой вопрос. Но если ваш вопрос, в общем, как извлечь текст из разных типов файлов, используя разные инструменты, а затем обработать их таким же образом,

for file in mylog_1.log mylog_2.log.gz …
do
    if [[ "$file" == *.gz ]]
    then
        zcat "$file"
    else
        cat "$file"
    fi | grep text | sort | uniq -c
done

Это будет обрабатывать каждый файл отдельно. Чтобы объединить (объединить )их и обработать совокупный текст как единое целое, просто переместите трубу:

for file in mylog_1.log mylog_2.log.gz …
do
    if [[ "$file" == *.gz ]]
    then
        zcat "$file"
    else
        cat "$file"
    fi
done | grep text | sort | uniq -c
2
16.02.2020, 15:38
2 ответа

А еще лучше попробуйте использовать что-то вроде этого:

- name: Ripgrep Repo
  get_url:
    url: https://copr.fedorainfracloud.org/coprs/carlwgeorge/ripgrep/repo/epel-7/carlwgeorge-ripgrep-epel-7.repo
    dest: /etc/yum.repos.d/copr_ripgrep.repo

Это, вероятно, самый "Ansible" способ решить проблему, если вы не хотите устанавливать yum-config-manager.


Старый ответ

На самом деле вам не нужно yum-config-managerдля выполнения этой задачи. Все, что делает команда в этом контексте, — это помещает этот удаленный файл в /etc/yum.repos.d/. После этого yumсможет извлекать пакеты из этого репозитория. Что-то вроде

sudo wget -O /etc/yum.repos.d/copr_ripgrep.repo https://copr.fedorainfracloud.org/coprs/carlwgeorge/ripgrep/repo/epel-7/carlwgeorge-ripgrep-epel-7.repo

... должно сработать. curlтакже будет работать, если wgetнедоступен.

Кроме того, вы можете сначала установить yum-config-manager, а затем использовать его, как вы упомянули.

3
28.04.2021, 23:25

Я не уверен, что вы можете добавить.repo по URL-адресу, поэтому я открыл его и преобразовал в директивы, необходимые для yum-repository.

name: Add repository for ripgrep for epel7
       yum_repository:
         name: cgor
         description: EPEL YUM repo
         baseurl: https://copr.fedorainfracloud.org/coprs/carlwgeorge/ripgrep/repo/epel-7/carlwgeorge-ripgrep-epel-7.repo
         name: copr
         description: Copr repo for ripgrep owned by carlwgeorge
         baseurl: https://copr-be.cloud.fedoraproject.org/results/carlwgeorge/ripgrep/epel-7-$basearch/
         gpgkey: https://copr-be.cloud.fedoraproject.org/results/carlwgeorge/ripgrep/pubkey.gpg
         gpgcheck: yes
         repo_gpgcheck: no
         enabled: yes
         skip_if_unavailable: true

Я оставлю это -непринятым, потому что я не думаю, что это идеально.

0
28.04.2021, 23:25

Теги

Похожие вопросы