0

Я следую this blog для установки OpenShift Origin V3 на OpenStack с использованием доступного. Но я получаю ошибкуНесоблюдение: Не удалось создать /etc/ansible/facts.d/openshift.fact, разрешение отклонено

"Could not create fact file: %s, error: %s" % (filename, ex) main.OpenShiftFactsFileWriteError: Could not create fact file: /etc/ansible/facts.d/openshift.fact, error: [Errno 13] Permission denied: '/etc/ansible/facts.d'

целевую систему CentOS, и я могу сделать беспарольную Sudo на целевых системах. Я даже добавил в /etc/sudoers

centos All=(ALL) NOPASSWD:ALL

ко всем узлам, а также в системе, из которой я бегу анзибль.

Из системы я запускаю управляемый, я пытался выполнить как sudo, как root, но те же результаты.

Я не уверен, где это разрешено, я имею в виду на хосте или целевых системах.

анзибль хозяева:

[OSEv3:children"] 
masters 
nodes 

[OSEv3:vars] 
ansible_ssh_user=centos 
ansible_sudo=true 
#ansible_ssh_user=root 

product_type=openshift 
deployment_type=origin 

[masters] 
192.168.144.132 openshift_public_hostname=master.novalocal openshift_ip=10.0.1.163 openshift_public_ip=192.168.144.132 

[nodes] 
192.168.144.128 openshift_public_hostname=node1.novalocal openshift_ip=10.0.1.164 openshift_public_ip=192.168.144.128 openshift_node_labels="{'region': 'primary', 'zone': 'east'}" 
192.168.144.129 openshift_public_hostname=node2.novalocal openshift_ip=10.0.1.165 openshift_public_ip=192.168.144.129 openshift_node_labels="{'region': 'primary', 'zone': 'west'}" 

Ansible.cfg

[defaults] 
hostfile = ansible_hosts 
remote_user = centos 
host_key_checking = False 

Ниже журнала:

TASK: [openshift_facts | Ensure PyYaml is installed] ************************** 
ok: [192.168.144.132] => (item=PyYAML) 

TASK: [openshift_facts | Gather Cluster facts] ******************************** 
failed: [192.168.144.132] => {"failed": true, "parsed": false} 
Traceback (most recent call last): 
    File "/home/centos/.ansible/tmp/ansible-tmp-1449035570.03-273189812167365/openshift_facts", line 6355, in <module> 
    main() 
    File "/home/centos/.ansible/tmp/ansible-tmp-1449035570.03-273189812167365/openshift_facts", line 1222, in main 
    openshift_facts = OpenShiftFacts(role, fact_file, local_facts, additive_facts_to_overwrite) 
    File "/home/centos/.ansible/tmp/ansible-tmp-1449035570.03-273189812167365/openshift_facts", line 999, in __init__ 
    self.facts = self.generate_facts(local_facts, additive_facts_to_overwrite) 
    File "/home/centos/.ansible/tmp/ansible-tmp-1449035570.03-273189812167365/openshift_facts", line 1013, in generate_facts 
    local_facts = self.init_local_facts(local_facts, additive_facts_to_overwrite) 
    File "/home/centos/.ansible/tmp/ansible-tmp-1449035570.03-273189812167365/openshift_facts", line 1194, in init_local_facts 
    save_local_facts(self.filename, new_local_facts) 
    File "/home/centos/.ansible/tmp/ansible-tmp-1449035570.03-273189812167365/openshift_facts", line 924, in save_local_facts 
    "Could not create fact file: %s, error: %s" % (filename, ex) 
__main__.OpenShiftFactsFileWriteError: Could not create fact file: /etc/ansible/facts.d/openshift.fact, error: [Errno 13] Permission denied: '/etc/ansible' 
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014 
debug1: Reading configuration data /etc/ssh/ssh_config 
debug1: /etc/ssh/ssh_config line 19: Applying options for * 
debug1: auto-mux: Trying existing master 
debug1: mux_client_request_session: master session id: 2 
Shared connection to 192.168.144.132 closed. 


FATAL: all hosts have already failed -- aborting 

PLAY RECAP ******************************************************************** 
      to retry, use: --limit @/root/config.retry 

192.168.144.132   : ok=6 changed=0 unreachable=0 failed=1 
localhost     : ok=7 changed=0 unreachable=0 failed=0 

У меня нет опыта работы с анзибль поэтому я неспособный отлаживать mor е.

+0

Эта ошибка указывает, что модуль openshift_facts не может выполнить запись в каталог /etc/ansible/facts.d на удаленном хосте. Как правило, я видел эту ошибку только при запуске как пользователь без полномочий root без sudo, но из предоставленных вами фрагментов инвентаря, которые здесь не выглядят. Если вы вручную используете ssh в 192.168.144.132 в качестве пользователя centos и пытаетесь запустить следующую команду: 'sudo touch/etc/ansible/facts.d/openshift.fact'. Если это не удастся, то все, что заставляет root не удаваться в /etc/ansible/facts.d, необходимо устранить, прежде чем продолжить. – detiber

+0

@detiber 'sudo touch/etc/ansible/facts.d/openshift.fact' дает ** Нет такого файла или каталога ** ошибка, возможно потому, что папка facts.d не существует. Но я могу создать случайный файл в папке '/ etc/ansible'. – user3275095

+0

Какую версию вы используете? – detiber

ответ

3

Решение кажется очень тривиальным. Я нашел его в группе google.

Просто нужно добавить

sudo = true 
sudo_user = root 

в файле ansible.cfg.

По крайней мере, эта ошибка исчезла, но я столкнулся с новой ошибкой.

EDIT Как указано в комментариях ниже, sudo_user должен быть root, поэтому соответствующим образом изменился anser.

+0

Настройка sudo_user не кажется правильной, это должен быть пользователь, который может выполнять действия, которые в этом случае должны быть * по умолчанию для root. – detiber

+0

Вы имеете в виду, что его не следует добавлять, и по умолчанию он принимает значения true & root? – user3275095

+0

sudo = true действительно не нужно, так как ваш инвентарь устанавливает ansible_sudo в группе OSEv3, но он не вредит ему в файле ansible.cfg. – detiber

 Смежные вопросы

  • Нет связанных вопросов^_^