像许多人一样,我正在考虑使用 OpenStack 或 VMware 创建“私有云”。
VMware vMotion 有一个很好的功能,即使没有共享存储,它也允许虚拟机的实时迁移。我在实验室环境中尝试过这个功能,效果很好。此功能并非没有缺点,但它对需要简单 VM 环境且不想因共享存储的复杂性和费用而感到紧张的站点很有吸引力。共享存储可以轻松地使虚拟/云基础架构的成本增加 50-10 万美元。有关此功能的更多信息,请访问:
使用 KVM 的 OpenStack 是否提供类似的功能?OpenStack 可以在没有共享存储的情况下进行实时迁移吗?KVM 是 OpenStack 的默认管理程序,除非有令人信服的理由使用其他东西,否则我们更愿意坚持使用默认设置。
virtualization virtual-machines vmware-esxi openstack kvm-virtualization
我有两个虚拟机 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 守护程序进行侦听。
除了在我的客户机上安装 emacs 之类的应用程序外,我还想上传一些配置文件(例如,为 Clojure 开发配置 emacs)。可悲的是,Vagrant 的文档没有提供有关如何执行此操作的线索。我想我必须将配置文件放入共享文件夹,然后将它们从来宾计算机上的共享文件夹复制到所需位置?
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) 作为 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)
我是否错过了回购或更明显的东西?
添加用户
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)
尝试解决问题
更改inetOrgPerson为uidObject并再次创建用户:
[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 解决问题
对象类 …
我在 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)
以下示例同时包含注释作为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) 对每月总输出数据设置上限的最简单方法是什么?我不想在短时间内限制带宽,目的是确保我保持在每月带宽成本的支出限制内,即使我收到 DDOS 并且无法响应来自 AWS 限制监视器的警报。
Node.js 在 Ubuntu 上运行,在 AWS EC2 中运行,因此可以在多个级别上实现。
假设我想编辑/etc/profile:
PYTHONPATH = /home/CURRENT_USER/
我正在使用自定义的 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 ×3
amazon-ec2 ×1
ansible ×1
apache-2.2 ×1
docker ×1
docker-swarm ×1
domain ×1
files ×1
ldap ×1
openldap ×1
openstack ×1
permissions ×1
provisioning ×1
rhel7 ×1
setuid ×1
ssh ×1
subdomain ×1
unix ×1
upload ×1
vagrant ×1
vmware-esxi ×1
wildcard ×1
yaml ×1
yum ×1