小编Sla*_* II的帖子

Ansible:仅当目标文件不存在时才复制模板

我正在Ansible 1.6.6用来配置我的机器。

我的剧本中有一个模板任务,它从 Jinja2 模板创建目标文件:

tasks:
    - template: src=somefile.j2 dest=/etc/somefile.conf
Run Code Online (Sandbox Code Playgroud)

somefile.conf如果它已经存在,我不想替换。Ansible 有可能吗?如果是这样,如何?

ansible

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

在 Ansible 中始终触发处理程序执行

我正在使用 Ansible 来配置我的开发服务器。

我希望它始终为我启动一些服务。我有用于此目的的处理程序,但是无条件触发处理程序执行的最佳方法是什么,例如使其始终工作?

像这样的东西:

tasks:
    - name: Trigger handler
      run_handler: name=nginx-restart
Run Code Online (Sandbox Code Playgroud)

ansible

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

Ansible 用列表迭代字典

我通过以下方式加载了以下变量include_vars

access:
    username-foo:
      - path: /
        permissions: rwX
        recursive: true

    username-bar:
      - path: /
        permissions: rX

      - path: /css
        permissions: rwX
        recursive: true

      - path: /data
        permissions: rX

      - path: /data/reviews.yml
        permissions: rw

      - path: /js
        permissions: rX

      - path: /js/*.js
        permissions: rw
Run Code Online (Sandbox Code Playgroud)

我想将此信息提供给shell命令以设置适当的权限。

我从这里尝试了一些技术:http : //docs.ansible.com/playbooks_loops.html 但未能提出有效的解决方案。

是否可以迭代这个结构?如果没有,我如何重新构建它以使其工作?是否可以在不违反 DRY 规则的情况下执行此操作(例如,将用户名包含在每条记录中)?

ansible

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

Vagrant、VirtualBox、Ansible 和 Ubuntu Server box 的奇怪网络问题

我们正在使用VagrantAnsible来配置VirtualBox机器。

这是伟大的工作,但最近我们已经开始遇到需要访问互联网,喜欢任务的一些奇怪的网络问题:apt-get updatecomposer updategem install等等,这些问题从不时冒出,他们是不稳定的。有时它无法连接到某些服务器或域名未解​​析。

有趣的是,当我通过 SSH ( vagrant ssh)连接到盒子本身并手动发出此类命令时,例如sudo apt-get update; sudo apt-get dist-upgrade- 它一直工作正常。

这是 NPM 的示例错误:

failed: [localhost] => {"cmd": "/usr/bin/npm install --global npm-check-updates", "failed": true, "rc": 1}
stderr: npm http GET https://registry.npmjs.org/npm-check-updates
npm http GET https://registry.npmjs.org/npm-check-updates
npm http GET https://registry.npmjs.org/npm-check-updates
npm ERR! network getaddrinfo ENOTFOUND
npm ERR! network This is most likely not a problem with npm itself
npm ERR! network …
Run Code Online (Sandbox Code Playgroud)

networking ubuntu virtualbox vagrant ansible

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

在 Ubuntu 服务器上重新启动后,PHP 5 FPM 套接字文件的目录被删除

我创建了一个目录,用于存储PHP 5 FPM套接字文件:sudo mkdir /var/run/php-fpm。它由root:root核心 PHP FPM 流程拥有。

当 PHP FPM 启动时,它会为此目录中的每个池创建套接字文件,nginx 使用它们进行通信。

但是,当我重新启动我的机器 ( sudo reboot) 时,该目录在重新启动后消失了,并且 PHP FPM 无法启动,因为它无法在丢失的目录中创建套接字文件。

可能是什么问题?我该如何调试?

我正在使用最新的 Ubuntu Server 14.04。

ubuntu php nginx php-fpm socket

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

对于空目录,nginx 404 而不是 403

我的 nginx 服务器有以下配置:

server {
    listen 80 default_server;
    server_name example.com www.example.com;
    root /var/www/example.com/web;

    index index.php index.html;

    location / {
        # try to serve file directly, fallback to rewrite
        try_files $uri $uri/ @rewriteapp;
    }

    location @rewriteapp {
        # rewrite all to index.php
        rewrite ^(.*)$ /index.php last;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
    }
}
Run Code Online (Sandbox Code Playgroud)

以及以下目录结构:

/var/www/example.com/:

  1. /index.php
  2. /dir/index.html
  3. /空的/

当客户端点击:' example.com/dir/ ' 然后 …

nginx web-server php5 php-fpm

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

通过 SSH 访问 GKE Kubernetes 集群?

我有一个想要调试的 GKE Kubernetes 集群。

是否可以使用ubuntu图像和 SSH 等方式以完全权限启动集群内的容器,以便我能够在其中安装软件并apt运行各种调试命令?

kubernetes google-kubernetes-engine

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