小编tec*_*raf的帖子

在 Ansible 中访问主机组的主机变量

我正在尝试使用 Ansible 在服务器主机文件中添加条目。我有一组服务器,我需要通过专用 LAN 相互通信。

我的库存文件:

[server_list]
server1
server2
Run Code Online (Sandbox Code Playgroud)

我试图开始工作的任务:

- lineinfile: dest=/etc/hosts line="{{ hostvars[" {{ item }} "]['ansible_eth1']['ipv4']['address'] }}   {{ hostvars[" {{ item }} "]['ansible_hostname'] }}"
  with_items: groups['server_list']
Run Code Online (Sandbox Code Playgroud)

它没有做到这一点,我明白了:

fatal: [server1] => host not found:  {{item}} 
fatal: [server2] => host not found:  {{item}} 
Run Code Online (Sandbox Code Playgroud)

这是基本相同,这样,但在新的Ansible变量访问格式{{ }}

任何想法如何完成这项工作?

ansible

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

Nginx 反向代理很慢

我有 Nginx 作为 Apache 的反向代理,但所有网站都需要很长时间才能加载。我也觉得 Nginx 没有按预期工作。

我确定虚拟主机配置有问题。以下是我使用的虚拟主机配置:

server {
root   /home/username/public_html;
listen xx.xx.xx.xx:80;
server_name domain.com www.domain.com;
access_log  /dev/null;
error_log  /usr/local/nginx/logs/vhost-error_log warn;
index index.php index.html index.htm;

location / {

location ~.*.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|txt|js|css|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso|woff|ttf|svg|eot)$ {
gzip_static on;
proxy_cache nginx-cache;
root   /home/username/public_html;
tcp_nodelay On;
tcp_nopush On;
access_log  /dev/null;
log_not_found Off;
expires 7d;
}

error_page 404 403 502 505 506 = @apachebackend;
add_header X-Cache "HIT from Backend";
proxy_pass   http://xx.xx.xx.xx:8080;
include /usr/local/nginx/conf/proxy.conf;
}

location @apachebackend {
internal;
proxy_pass   http://xx.xx.xx.xx:8080;
include /usr/local/nginx/conf/proxy.conf;
}

}
Run Code Online (Sandbox Code Playgroud)

还有以下内容proxy.conf: …

nginx

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

systemd-journald 根本不启动

/var/log/journal不小心删除了我的后,我无法从后果中恢复过来。systemd-journald每次我尝试启动它时都会一遍又一遍地失败。当我运行时:

$ journalctl --verify
PASS: /run/log/journal/system.journal
Run Code Online (Sandbox Code Playgroud)

这并没有让我更接近解决它,因为它/run/log/journal/system.journal是在我/usr/lib/systemd/systemd-journald直接运行时创建的,它自己输出

$ /usr/lib/systemd/systemd-journald
Failed to open runtime journal: Invalid argument
Run Code Online (Sandbox Code Playgroud)

我已经尝试过的事情:

  1. 清理/var/log/journal and/run/log/journal`。
  2. /var/log/journal从另一台机器复制到两条路径,运行journalctl --verify检查它们,并再次使用--file标志。
  3. 将存储设置更改/etc/systemd/journald.confStorage=volatile只是禁用/var/log/journald.
  4. 重新启动。

systemd journald journalctl

7
推荐指数
1
解决办法
9933
查看次数

使用 PowerShell 创建 FastCGI 应用程序

我正在尝试自动配置 Windows 2012 服务器,但我无法让 PHP 工作。

这是我用来向 IIS 添加处理程序映射的命令:

New-WebHandler -Name "PHP-FastCGI" -Path "*.php" -Verb "*" -Modules "FastCgiModule" -ScriptProcessor "c:\php\php-cgi.exe" -ResourceType File
Run Code Online (Sandbox Code Playgroud)

这正确添加了处理程序映射,到目前为止一切顺利。

但是,我仍然需要为可执行文件手动创建一个 FastCGI 应用程序以使其工作。自动执行此操作的 PowerShell 命令是什么?我找不到任何指向正确方向的东西。

powershell php fastcgi windows-server-2012-r2 iis-8.5

7
推荐指数
1
解决办法
3198
查看次数

Ansible 中是否有 VMware 的动态清单?

动态清单的文档提到了很多动态清单,但没有提到 VMware。

我非常喜欢 Amazon EC2 中标记服务器的功能,并希望在我们的 VMware 环境中重新创建一个类似的系统。

获取 vSphere 中所有带有“environment=testing”和“application=helloworld”标签的服务器,并在它们上运行这个 Ansible playbook。

vmware-vsphere ansible

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

如何在 Ansible Tower 中使用现有的 Vault 文件?

我想将以前与 Ansible(独立)一起使用的现有清单包括 group_vars 和保险库文件导入 Ansible Tower (3.2.0)。

但是,一旦 Vault 文件发挥作用,它似乎就不起作用了。一旦我设置了 Vault 密码文件凭据并使用源类型“源自项目”创建清单 - 我无法在“源详细信息”下选择 Vault 凭据。

凭据对话框屏幕截图

当我手动将其放入并保存源时 - 同步失败并出现以下错误:

 1.735 INFO     Updating inventory 10: TEST
    1.753 DEBUG    Using system install of ansible-inventory CLI: /usr/bin/ansible-inventory
    1.753 INFO     Reading Ansible inventory source: /var/lib/awx/projects/_6__ansible_master/inventories/test/hosts
    1.754 DEBUG    Using private credential data in '/tmp/awx_123_LXUj9p'.
    1.755 DEBUG    Using fresh temporary directory '/tmp/awx_proot_ZURWmR' for isolation.
    1.755 DEBUG    Running from `/var/lib/awx/projects/_6__ansible_master/inventories/test` working directory.
Traceback (most recent call last):
  File "/usr/bin/awx-manage", line 9, in <module>
    load_entry_point('awx==3.2.0', 'console_scripts', 'awx-manage')()
  File …
Run Code Online (Sandbox Code Playgroud)

ansible ansible-tower

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

如何“真正”减少 KVM 虚拟机映像的大小?

我花了很多时间在网上搜索有关如何缩小 KVM 虚拟磁盘映像的信息,尤其是对于 Windows 客户机,但没有成功。

我所发现的只是将 VM 可用空间归零,对虚拟磁盘进行碎片整理(来自 Windows),然后运行qemu-img convert -c ...-c压缩标志)。

我有一个 Windows 7 VM,虚拟驱动器大小为 100 GB。最初,这个 VDD 在主机存储上花费了 40 GB。归零后,VDD 将占用主机上的实际 100 GB。并qemu-img -c ...创建了 91 GB,这完全不是我所期望的。

在 Modernie 网站上,我们可以下载小于 10 GB 的 W7 VM,这怎么可能?有没有办法“真正”压缩 VM 映像?


感谢@dyasny,我用virt-sparsity. 我清理了 W7 VM 磁盘,禁用休眠,因此 VDD 仅消耗 20 GB。再次降级磁盘,并再次运行sdelete -zvirt-sparsity使用该--compress标志运行会提供 80 GB 的虚拟驱动器。远非我所希望的。


EDIT-2016-02-16:“刷新”这个问题,因为这里讨论的缩小 VM 的方法非常有效,但有一个主要缺点:它会删除所有 VM 快照。如果有人知道如何在保留快照的同时缩小 VM,请随时分享!

windows compression qemu kvm-virtualization

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

基于 LDAP 组成员资格的 Apache 用户身份验证不起作用

我想验证并授权一个 LDAP 组(Windows 上的 ApacheDS 2.0.0-20,使用组中的多个 uniqueMember 属性以及 httpd 配置中的“需要 ldap-group”语句)的所有用户访问 Web 资源。

尝试进行身份验证的用户也是此 LDAP 组的一部分,如果我在 httpd 配置中使用“需要有效用户”语句而不是“需要 ldap 组”语句,则该用户将获得授权。

设置:

  • 基于 Linux 的 Apache 2.4.23(来自 OpenSuse 42.1 Apache 存储库)
  • LDAP:基于 MS Windows 的 ApacheDS 2.0.0-20

ApacheDS LDAP 中的组配置:

LDAP 组配置

httpd的配置摘录:

<AuthnProviderAlias ldap ldapconfig>
        LDAPReferrals Off
        AuthLDAPBindDN "cn=query,ou=users,o=WJWext"
        AuthLDAPBindPassword secretpassword
        AuthLDAPURL "ldap://ldap.hostname:10389/o=WJWext?uid?sub"
</AuthnProviderAlias>

...
LogLevel trace7

<Location /xy>
...
        AuthType Basic
        AuthName "xy"
        AuthBasicProvider ldapconfig
        AuthLDAPGroupAttributeIsDN on
        AuthLDAPGroupAttribute uniqueMember
        AuthLDAPMaxSubGroupDepth 0
        AuthLDAPSubGroupClass groupOfUniqueNames
        Require ldap-group cn=groupname,ou=groups,o=WJWext
...
</Location>
Run Code Online (Sandbox Code Playgroud)

httpd的日志文件显示用户可以通过身份验证,但没有被组授权:

[Tue Nov …
Run Code Online (Sandbox Code Playgroud)

httpd ldap mod-auth-ldap apache-2.4

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

虚拟机存储和san存储的区别

在 SAN 上创建的 VM 存储与直接在 SAN 上使用存储来读写数据的性能有何不同?

我的意思是,我们有基于 VM 安装的 SQL 服务器并使用虚拟硬盘驱动器。

VM 在我的 SAN 上。

直接通过SQL server 读写数据到SAN 是否更好?我的解决方案有更好的性能吗?

virtualization storage-area-network

6
推荐指数
1
解决办法
1158
查看次数

Ansible 生成数字数组

我的目的是生成一个包含 1 到 22 数字的列表,为此我在 Ansible 脚本下面写了。

- hosts: localhost
  gather_facts: no
  tasks:
    - name: Generate sequance
      set_fact:
        mysequence: "{{ item | list }}"
      with_sequence: start=1 end=22

    - debug: var=mysequence
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,我得到了这个奇怪的结果

$ ansible-playbook test.yml

PLAY [localhost] **************************************************************************************************************************

TASK [Generate sequance] ******************************************************************************************************************
ok: [localhost] => (item=1)
ok: [localhost] => (item=2)
ok: [localhost] => (item=3)
ok: [localhost] => (item=4)
ok: [localhost] => (item=5)
ok: [localhost] => (item=6)
ok: [localhost] => (item=7)
ok: [localhost] => (item=8)
ok: [localhost] => (item=9)
ok: [localhost] => …
Run Code Online (Sandbox Code Playgroud)

ansible

6
推荐指数
1
解决办法
9851
查看次数