Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb启动问题_Mongodb_Chef Infra_Chef Recipe - Fatal编程技术网

Mongodb启动问题

Mongodb启动问题,mongodb,chef-infra,chef-recipe,Mongodb,Chef Infra,Chef Recipe,我遇到了mongodb启动的问题。 我的厨师报告中有以下代码: cookbook_file "/etc/yum.repos.d/mongodb-org-4.2.repo" do source 'mongodb-org-4.2.repo' owner 'root' group 'root' mode 00644 end yum_package 'mongodb-org' do action :install version '4.2.3-1.amzn2' end unl

我遇到了mongodb启动的问题。 我的厨师报告中有以下代码:

cookbook_file "/etc/yum.repos.d/mongodb-org-4.2.repo" do
  source 'mongodb-org-4.2.repo'
  owner 'root'
  group 'root'
  mode 00644
end

yum_package 'mongodb-org' do
  action :install
  version '4.2.3-1.amzn2'
end

unless node['env']['is_dev']
  execute 'open mongo port' do
    command 'semanage port -a -t mongod_port_t -p tcp 27017'
    action :run
  end
end
Mongodb失败,出现以下错误:

================================================================================
    Error executing action `run` on resource 'execute[open mongo port]'
    ================================================================================
    Mixlib::ShellOut::ShellCommandFailed
    ------------------------------------
    Expected process to exit with [0], but received '1'
    ---- Begin output of semanage port -a -t mongod_port_t -p tcp 27017 ----
    STDOUT: 
    STDERR: ValueError: Port tcp/27017 already defined
    ---- End output of semanage port -a -t mongod_port_t -p tcp 27017 ----
    Ran semanage port -a -t mongod_port_t -p tcp 27017 returned 1
    Resource Declaration:
    ---------------------
    # In /var/chef/local-mode-cache/cache/cookbooks/spinnaker-edda/recipes/install.rb
     51:   execute 'open mongo port' do
     52:     command 'semanage port -a -t mongod_port_t -p tcp 27017'
     53:     action :run
     54:   end
     55: end
有人能帮我理解这里出了什么问题吗? 我从文档中读到mongodb的默认端口是27017。但我不知道它为什么抱怨。
我也尝试过使用
-m
而不是
-a
,但问题依然存在。非常感谢您的帮助

如果不严格要求手动在目标上执行shell命令,请尽量避免,但应始终首先查找一些在复杂的不同案例研究中提供所需功能的可用有效食谱。 对于您的场景,您可以使用selinux_策略食谱(请参阅)

使用该手册,您可以按如下方式打开mongo端口:

selinux_policy_permissive 27017 do
   action :add
end
关于您的问题,它说
端口tcp/27017已经定义
,因此它意味着如果端口在selinux上已经定义,那么您的指令不是幂等的。所以,使用我建议的食谱,你应该解决这个问题,因为在这个场景中它可能是幂等的