Ansible не будет создавать репозиторий yum
Я пытаюсь заставить Ansible настроить репозиторий EPEL на новом экземпляре AWS. Если я использую yum_repository
модуль. Если я использую yum
модуль и попытайтесь установить его по проводам, он сообщает как успешный, но на самом деле ничего не делает.
yum_repository
модуль:
- name: Install EPEL
yum_repository:
name: epel
description: EPEL YUM repo
baseurl: https://download.fedoraproject.org/pub/epel/$releasever/$basearch/
loop: "{{ ec2.instances }}"
Возможный результат (красным):
TASK [Install EPEL] ****************************************************************************************************
failed: [localhost] (item={u'kernel': None, u'root_device_type': u'ebs', u'private_dns_name': u'ip-172-31-33-208.ec2.internal', u'public_ip': u'18.207.163.99', u'private_ip': u'172.31.33.208', u'id': u'i-0b05b63091e29d577', u'ebs_optimized': False, u'state': u'running', u'virtualization_type': u'hvm', u'root_device_name': u'/dev/sda1', u'ramdisk': None, u'block_device_mapping': {u'/dev/sda1': {u'status': u'attached', u'delete_on_termination': False, u'volume_id': u'vol-04dbaef4c21d9879b'}}, u'key_name': u'AWSCentOS7', u'image_id': u'ami-4bf3d731', u'tenancy': u'default', u'groups': {u'sg-0f9a0c832c082129e': u'web'}, u'public_dns_name': u'ec2-18-207-163-99.compute-1.amazonaws.com', u'state_code': 16, u'tags': {}, u'placement': u'us-east-1a', u'ami_launch_index': u'0', u'dns_name': u'ec2-18-207-163-99.compute-1.amazonaws.com', u'region': u'us-east-1', u'launch_time': u'2018-06-02T18:44:05.000Z', u'instance_type': u't2.micro', u'architecture': u'x86_64', u'hypervisor': u'xen'}) => {"changed": false, "details": "[Errno 13] Permission denied: '/etc/yum.repos.d/epel.repo'", "item": {"ami_launch_index": "0", "architecture": "x86_64", "block_device_mapping": {"/dev/sda1": {"delete_on_termination": false, "status": "attached", "volume_id": "vol-04dbaef4c21d9879b"}}, "dns_name": "ec2-18-207-163-99.compute-1.amazonaws.com", "ebs_optimized": false, "groups": {"sg-0f9a0c832c082129e": "web"}, "hypervisor": "xen", "id": "i-0b05b63091e29d577", "image_id": "ami-4bf3d731", "instance_type": "t2.micro", "kernel": null, "key_name": "AWSCentOS7", "launch_time": "2018-06-02T18:44:05.000Z", "placement": "us-east-1a", "private_dns_name": "ip-172-31-33-208.ec2.internal", "private_ip": "172.31.33.208", "public_dns_name": "ec2-18-207-163-99.compute-1.amazonaws.com", "public_ip": "18.207.163.99", "ramdisk": null, "region": "us-east-1", "root_device_name": "/dev/sda1", "root_device_type": "ebs", "state": "running", "state_code": 16, "tags": {}, "tenancy": "default", "virtualization_type": "hvm"}, "msg": "Cannot open repo file /etc/yum.repos.d/epel.repo."}
В эту длинную строку встроена ошибка:
"changed": false, "details": "[Errno 13] Permission denied: '/etc/yum.repos.d/epel.repo'"
И сообщение:
msg": "Cannot open repo file /etc/yum.repos.d/epel.repo."}
Ошибка извлекается из более длинной строки, которую я пытался использовать become
, become_user
, а также become_method
но это не помогло.
yum
модуль:
- name: Install EPEL
yum:
name: https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
state: present
loop: "{{ ec2.instances }}"
- name: Import EPEL GPG Key
rpm_key:
key: /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
state: present
loop: "{{ ec2.instances }}"
Возможный результат (зеленым):
TASK [Install EPEL] ********************************************************************************************************************
ok: [localhost] => (item={u'kernel': None, u'root_device_type': u'ebs', u'private_dns_name': u'ip-172-31-40-128.ec2.internal', u'public_ip': u'54.211.185.153', u'private_ip': u'172.31.40.128', u'id': u'i-00df2781d264e5da7', u'ebs_optimized': False, u'state': u'running', u'virtualization_type': u'hvm', u'root_device_name': u'/dev/sda1', u'ramdisk': None, u'block_device_mapping': {u'/dev/sda1': {u'status': u'attached', u'delete_on_termination': False, u'volume_id': u'vol-0d6444601bbfcbe15'}}, u'key_name': u'AWSCentOS7', u'image_id': u'ami-4bf3d731', u'tenancy': u'default', u'groups': {u'sg-0f9a0c832c082129e': u'web'}, u'public_dns_name': u'ec2-54-211-185-153.compute-1.amazonaws.com', u'state_code': 16, u'tags': {}, u'placement': u'us-east-1a', u'ami_launch_index': u'0', u'dns_name': u'ec2-54-211-185-153.compute-1.amazonaws.com', u'region': u'us-east-1', u'launch_time': u'2018-06-02T19:22:40.000Z', u'instance_type': u't2.micro', u'architecture': u'x86_64', u'hypervisor': u'xen'})
TASK [Import EPEL GPG Key] *************************************************************************************************************
ok: [localhost] => (item={u'kernel': None, u'root_device_type': u'ebs', u'private_dns_name': u'ip-172-31-40-128.ec2.internal', u'public_ip': u'54.211.185.153', u'private_ip': u'172.31.40.128', u'id': u'i-00df2781d264e5da7', u'ebs_optimized': False, u'state': u'running', u'virtualization_type': u'hvm', u'root_device_name': u'/dev/sda1', u'ramdisk': None, u'block_device_mapping': {u'/dev/sda1': {u'status': u'attached', u'delete_on_termination': False, u'volume_id': u'vol-0d6444601bbfcbe15'}}, u'key_name': u'AWSCentOS7', u'image_id': u'ami-4bf3d731', u'tenancy': u'default', u'groups': {u'sg-0f9a0c832c082129e': u'web'}, u'public_dns_name': u'ec2-54-211-185-153.compute-1.amazonaws.com', u'state_code': 16, u'tags': {}, u'placement': u'us-east-1a', u'ami_launch_index': u'0', u'dns_name': u'ec2-54-211-185-153.compute-1.amazonaws.com', u'region': u'us-east-1', u'launch_time': u'2018-06-02T19:22:40.000Z', u'instance_type': u't2.micro', u'architecture': u'x86_64', u'hypervisor': u'xen'})
Результат экземпляра:
[centos@ip-###-###-###-### ~]$ rpm -qa |grep -i epel
[centos@ip-###-###-###-### ~]$
Как мне настроить репозиторий?
1 ответ
Цикл работает не так, как вы думаете.
Ваш playbook использует неправильно hosts
, то есть вы запускаете yum_repository против localhost.
Вы должны установить hosts
var в вашей игровой книге к экземплярам, которые у вас есть.