3

我一直在尝试使用 devstack 在 centos 上安装 Openstack。当我运行脚本时,我收到以下错误:

[vagrant@centos64 devstack]$ ./stack.sh 
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 1 <<<
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 2 <<<
sudo: parse error in /etc/sudoers.d/50_stack_sh near line 1
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 1 <<<
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 2 <<<
sudo: parse error in /etc/sudoers.d/50_stack_sh near line 1
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 1 <<<
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 2 <<<
sudo: parse error in /etc/sudoers.d/50_stack_sh near line 1
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 1 <<<
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 2 <<<
sudo: parse error in /etc/sudoers.d/50_stack_sh near line 1
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 1 <<<
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 2 <<<
sudo: parse error in /etc/sudoers.d/50_stack_sh near line 1
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
RDO repo not detected; installing
++ proxychains /usr/bin/yum.bin install http://rdo.fedorapeople.org/openstack-havana/rdo-release-havana.rpm
ProxyChains-3.1 (http://proxychains.sf.net)
Loaded plugins: fastestmirror
You need to be root to perform this command.
[Call Trace]
./stack.sh:224:die
[ERROR] ./stack.sh:224 Error installing RDO repo, cannot continue

现在,这里是 /etc/sudoers.d/50_stack_sh 文件:

[root@centos64 devstack]# cat /etc/sudoers.d/50_stack_sh
 ALL=(root) NOPASSWD:ALL
Defaults: secure_path=/sbin:/usr/sbin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin

我试图编辑它,但它说它是一个只读缓冲区,即使对于 root 用户也是如此。我试图通过编辑 /etc/sudoers 文件将 vagrant 用户添加到 sudoers 组,但它给出了与只读缓冲区相同的错误。如何解决此错误?

4

4 回答 4

3

您需要一个没有密码的 sudo 用户才能安装 devstack 的主要问题。尝试运行:devstack/tools/create-stack-user.sh 之后它应该可以工作了。

于 2014-04-18T09:01:46.753 回答
3

回顾一下上下文:

  • 我已经安装了 CentOS 7 (1503) 最小。
  • 作为根:

    • 我运行了命令:

      git clone https://git.openstack.org/openstack-dev/devstack
      
    • 我运行了命令devstack/tools/create-stack-user.sh:它创建了一个堆栈用户并创建了文件/etc/sudoers.d/50_stack_sh。但是那个文件有语法错误

      为了修复它,我编辑文件/etc/sudoers.d/50_stack_sh以包含以下内容:

      stack ALL=(ALL) NOPASSWD: ALL
      Defaults secure_path=/sbin:/usr/sbin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin
      Defaults !requiretty
      

      要使用 VIM 强制保存,您需要输入:w!

希望能帮助到你,

于 2015-09-24T14:40:07.677 回答
1

我也有这个问题。stack.sh 脚本没有问题,因为您可以(作为堆栈用户)运行诸如“sudo yum update”之类的东西,它会产生同样的问题。

它来自 /etc/sudoers.d/50_stack_sh 文件中的语法错误。您可以摆脱运行(以 root 身份)

echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

我的 stack.sh 现在似乎运行良好

于 2014-05-29T04:07:45.487 回答
-1

有我的方法来解决它。我 cd 到/etc/sudoers.d/,然后删除文件 50_stack_sh。它可以工作,现在您的用户可以很好地工作。您可以更改为要运行 devstack 并运行脚本的用户./stack.sh。希望能帮助到你!

于 2016-09-29T01:38:40.610 回答