小编030*_*030的帖子

在没有共享存储的情况下是否可以实现 OpenStack 实时迁移?

像许多人一样,我正在考虑使用 OpenStack 或 VMware 创建“私有云”。

VMware vMotion 有一个很好的功能,即使没有共享存储,它也允许虚拟机的实时迁移。我在实验室环境中尝试过这个功能,效果很好。此功能并非没有缺点,但它对需要简单 VM 环境且不想因共享存储的复杂性和费用而感到紧张的站点很有吸引力。共享存储可以轻松地使虚拟/云基础架构的成本增加 50-10 万美元。有关此功能的更多信息,请访问:

使用 KVM 的 OpenStack 是否提供类似的功能?OpenStack 可以在没有共享存储的情况下进行实时迁移吗?KVM 是 OpenStack 的默认管理程序,除非有令人信服的理由使用其他东西,否则我们更愿意坚持使用默认设置。

virtualization virtual-machines vmware-esxi openstack kvm-virtualization

4
推荐指数
1
解决办法
3411
查看次数

如何获取 docker swarm 节点的 IP 地址?

我有两个虚拟机 ubuntu16 来宾,它们可以通过仅主机网络进行通信:172.28.128.0/16

我使用docker docs 中的步骤创建了一个 docker swarm 。以下是我的群的状态:

vagrant@master:~$ docker node ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
127fuzxjq2j3ashcteu8fo248    worker1   Ready   Active        
43l953k75lv14uw7ni2hbib5j *  master    Ready   Active        Leader
Run Code Online (Sandbox Code Playgroud)

我可以使用这个群来成功运行服务。但是是否可以通过 docker 获取节点的基于 172.28.128.0/16 的 IP 地址?我尝试查看docker commandline reference以及docker remote api 。我的目标是通过远程 api 联系任何 swarm 节点,但为此我需要它的底层 api,在该 api 上启用远程 docker 守护程序进行侦听。

docker docker-swarm

4
推荐指数
1
解决办法
1万
查看次数

如何使用 shell 提供程序上传配置文件?

除了在我的客户机上安装 emacs 之类的应用程序外,我还想上传一些配置文件(例如,为 Clojure 开发配置 emacs)。可悲的是,Vagrant 的文档没有提供有关如何执行此操作的线索。我想我必须将配置文件放入共享文件夹,然后将它们从来宾计算机上的共享文件夹复制到所需位置?

files provisioning upload vagrant

3
推荐指数
1
解决办法
4913
查看次数

如何在Apache2的VirtualDocumentRoot中配置和组合通配符域和子域?

httpd-vhosts.conf

<Directory "/Volumes/DATA/websites">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted
</Directory>

<Virtualhost *:80>
    VirtualDocumentRoot "/Volumes/DATA/websites/default"
    ServerName default.dev
    UseCanonicalName Off
</Virtualhost>

<Virtualhost *:80>
    VirtualDocumentRoot "/Volumes/DATA/websites/%1/www"
    ServerAlias *.dev
    UseCanonicalName Off
</Virtualhost>
Run Code Online (Sandbox Code Playgroud)

目前处理请求如下:

alpha.dev   -> /Volumes/DATA/websites/alpha/www
beta.dev    -> /Volumes/DATA/websites/beta/www
Run Code Online (Sandbox Code Playgroud)

是否可以拥有通配符域子域?例如:

alpha.dev       -> /Volumes/DATA/websites/alpha/www
img.alpha.dev   -> /Volumes/DATA/websites/alpha/img
cdn.alpha.dev   -> /Volumes/DATA/websites/alpha/cdn

beta.dev        -> /Volumes/DATA/websites/beta/www
docs.beta.dev   -> /Volumes/DATA/websites/beta/docs
blog.beta.dev   -> /Volumes/DATA/websites/beta/blog
Run Code Online (Sandbox Code Playgroud)

domain wildcard subdomain apache-2.2

3
推荐指数
1
解决办法
1万
查看次数

在 RHEL 7 上安装 compat-libstdc++-33

作为 Oracle 安装的一部分,我需要安装该compat-libstdc++-33-3.2.3 (x86_64)软件包。但是,无论我尝试使用 yum 安装什么版本的软件包,都找不到它

[root@ip-xxx-xx-x-xxx ~]# yum install compat-libstdc++-33
Loaded plugins: amazon-id, langpacks, rhui-lb
No package compat-libstdc++-33 available.
Error: Nothing to do
[root@ip-xxx-xx-x-xxx ~]#
Run Code Online (Sandbox Code Playgroud)

我是否错过了回购或更明显的东西?

yum amazon-ec2 rhel7

3
推荐指数
1
解决办法
3万
查看次数

如何将包含 UID 的用户添加到在 CentOS7 上运行的 OpenLDAP?

添加用户

用户名文件

dn: uid=sampleuser,ou=people,dc=my-domain,dc=com
objectClass: top
objectClass: inetOrgPerson
cn: sample user
uid: sampleuser
Run Code Online (Sandbox Code Playgroud)

问题

[root@host ~]# ldapadd -x -W -D "cn=Manager,dc=my-domain,dc=com" -f user.ldif
Enter LDAP Password:
adding new entry "uid=sampleuser,ou=people,dc=my-domain,dc=com"
ldap_add: Invalid syntax (21)
        additional info: objectClass: value #1 invalid per syntax
Run Code Online (Sandbox Code Playgroud)

尝试解决问题

更改inetOrgPersonuidObject并再次创建用户:

[root@controller ~]# ldapadd -x -W -D "cn=Manager,dc=my-domain,dc=com" -f user.ldif
Enter LDAP Password:
adding new entry "uid=sampleuser,ou=people,dc=my-domain,dc=com"
ldap_add: Object class violation (65)
        additional info: no structural object class provided
Run Code Online (Sandbox Code Playgroud)

尝试 2 解决问题

对象类 …

openldap ldap

3
推荐指数
1
解决办法
6634
查看次数

自 Ansible 2.0 以来,格式化策略如何?

我在 github 和 ansible docs 中看到了多个 Ansible 示例,例如:

---
# this might be in a file like handlers/handlers.yml
- name: restart apache
  service: name=apache state=restarted
Run Code Online (Sandbox Code Playgroud)

Github 示例

以下示例同时包含注释作为name.

# Make sure Jenkins starts, then configure Jenkins.
- name: Ensure Jenkins is started and runs on startup.
  service: name=jenkins state=started enabled=yes
Run Code Online (Sandbox Code Playgroud)

讨论

Aname将是足够的权利还是应该使用评论?

应该是:

- name: Symlink RabbitMQ bin to sbin
  file: state=link src=/usr/lib/rabbitmq/bin dest=/usr/lib/rabbitmq/sbin
Run Code Online (Sandbox Code Playgroud)

或者:

#Symlink RabbitMQ bin to sbin
file: 
  state: link
  src: /usr/lib/rabbitmq/binhttp://docs.ansible.com/ansible/YAMLSyntax.html …
Run Code Online (Sandbox Code Playgroud)

ansible yaml

3
推荐指数
2
解决办法
448
查看次数

封顶每月总输出数据

对每月总输出数据设置上限的最简单方法是什么?我不想在短时间内限制带宽,目的是确保我保持在每月带宽成本的支出限制内,即使我收到 DDOS 并且无法响应来自 AWS 限制监视器的警报。

Node.js 在 Ubuntu 上运行,在 AWS EC2 中运行,因此可以在多个级别上实现。

linux amazon-web-services

3
推荐指数
1
解决办法
438
查看次数

在 linux 上的脚本中使用 HOSTNAME 和 CURRENT_USER

假设我想编辑/etc/profile

PYTHONPATH = /home/CURRENT_USER/

  1. 我如何有一个会自动填充当前用户的变量
  2. 什么主机名
  3. 这些不是环境变量吗?

linux unix environment-variables

2
推荐指数
1
解决办法
1万
查看次数

从脚本向 linux 添加新用户

我正在使用自定义的 Redmine 安装来管理项目。我设法挂钩了新用户的添加并将登录信息发送到我拥有的 bash 脚本。下面是我的脚本:

#!/bin/sh
UNAME=$1
UPASS=$2
wall "$UNAME $UPASS"
useradd "$UNAME"
echo "$UPASS" | passwd "$UNAME" --stdin
usermod -g restricted "$UNAME"
Run Code Online (Sandbox Code Playgroud)

Echo 是一个内置的 bash,所以当它输入密码时它不会显示在进程表中。 问题是我收到了 Redmine 的许可投诉:

/opt/rms/redmine/new-user: line 5: /usr/sbin/useradd: Permission denied
Only root can do that.
/opt/rms/redmine/new-user: line 7: /usr/sbin/usermod: Permission denied
Run Code Online (Sandbox Code Playgroud)

这显然表明我需要 root 权限或执行此操作的其他方法。因此,我尝试在文件上设置具有权限 4755 的 UID 位,以便它以 root 身份运行,但出现与上述相同的错误。知道这里发生了什么吗?

我的一般情况是我的目标是将新用户作为 linux 用户自动添加到项目管理系统中,然后当他们被添加到某个组时,我计划将其挂钩,以便他们获得扩展权限,使他们能够通过 SSH 访问 Mercurial 存储库- 所以用户管理完全通过前端处理。

linux permissions ssh setuid

2
推荐指数
1
解决办法
2448
查看次数