有一个模块lineinfile
在文件中添加一行,有没有办法添加几行?
我不想使用模板,因为您必须提供整个文件.我只是想在现有文件中添加一些东西而不必知道文件已包含的内容,因此模板不是一个选项.
是否可以在角色中重用角色?我不是指通过在角色的meta/main.yml文件中定义依赖项,而是直接将角色包含在另一个角色的tasks/main.yml中?
例如,我在角色簿中定义了几个基本角色,在角色中定义了一些更高级别的角色.我希望高级角色除了某些特定任务外还包括一些基本角色.
playbooks/
rolebooks/
some_role/
roles/
webtier/
tasks/
main.yml
Run Code Online (Sandbox Code Playgroud)
在playbooks/roles/webtier/tasks/main.yml中:
- shell: echo 'hello'
- { role: rolebooks/some_role }
- shell: echo 'still busy'
Run Code Online (Sandbox Code Playgroud)
谢谢
我已经阅读了Ansible文档,但我仍然对ansible playbooks中的以下三个参数感到困惑:user,sudo,sudo_user.
我尝试了以下不同组合参数的playbooks:
user:deploy => Works
user:deploy和sudo:True => 挂起git任务
user:deploy,sudo:True和sudo_user:deploy => Works
sudo_user实际上做了什么?何时以及为什么要使用这些组合?
- hosts: all
user: deploy
sudo: True
sudo_user: deploy
tasks:
- name: Ensure code directory
file: dest=/home/deploy/code state=directory
- name: Deploy app
git: repo=git@bitbucket.org:YAmikep/djangotutorial.git dest=/home/deploy/code
Run Code Online (Sandbox Code Playgroud)
谢谢
我已经按照本教程进行了操作:http://blog.wercker.com/2013/11/25/django-16-part3.html我现在正试图让它在Vagrant本地工作.我不是想使用Wercker.
安装完所有内容后,我尝试访问该网站,但每次都收到错误请求(400)错误.我不知道这是由于nginx还是gunicorn中的问题.
它们都有一个日志条目,所以至少我知道请求一直通过gunicorn并且不会在nginx级别停止.
问题在哪里?Gunicorn?nginx的?
这是gunicorn和nginx的日志.
我看到favicon丢失了,但这不应该阻止页面显示正确吗?
Gunicorn:
>>> cat /var/local/sites/hellocities/run/gunicorn.error.log
10.0.0.1 - - [28/Jan/2014:07:05:16] "GET / HTTP/1.0" 400 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36"
10.0.0.1 - - [28/Jan/2014:07:09:43] "GET / HTTP/1.0" 400 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36"
Run Code Online (Sandbox Code Playgroud)
Nginx的:
>>> cat /var/log/nginx/hellocities-access.log
10.0.0.1 - - [28/Jan/2014:07:05:16 +0000] "GET / HTTP/1.1" 400 37 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, …
Run Code Online (Sandbox Code Playgroud) 我正在研究Backbone和来自http://todomvc.com/的todo示例应用程序. 我注意到有三种方法可以在文件中启动代码:
$(function() {
// code here
});
$(function( $ ) {
// code here
});
(function() {
// code here
}());
Run Code Online (Sandbox Code Playgroud)
我不明白这些差异,何时我应该使用另一个.
我也看到一些人使用它来启动他们的代码:
$(document).ready(function(){
// code here
});
Run Code Online (Sandbox Code Playgroud)
从我所看到的,这是完整的写作方式吗?
以更一般的方式,我是否应该始终将我的javascript代码包含在每个文件中?
谢谢你的建议.
我正在使用Ansible,我很难让git模块正常工作.我看过几个有同样问题的人发帖,我看了一下ansible doc,好吧我几乎尝试了所有的东西.我找到了一个明确的教程,我跟着他们使用git但是当我使用我的存储库时我又遇到了问题...:/ git任务只是挂起......没有错误,它只是卡住了!
这是我的主机文件:
[web]
dev1 ansible_ssh_host=10.0.0.101 ansible_ssh_user=root
Run Code Online (Sandbox Code Playgroud)
这是在我的计算机上的virtualbox上运行的vagrant VM.
我从本教程中获取了剧本,并完成了步骤08之前的所有步骤:https://github.com/leucos/ansible-tuto/tree/master/step-08
我在我的VM上运行它,它运行正常,然后我添加一个任务"部署我的代码"来使用我的存储库......但是这个任务不起作用.它是bitbucket上的私有存储库.这有什么不同吗?
- hosts: web
tasks:
- name: Deploy our awesome application
action: git repo=https://github.com/leucos/ansible-tuto-demosite.git dest=/var/www/awesome-app
tags: deploy
- name: Deploy my code
action: git repo=https://YAmikep@bitbucket.org/YAmikep/djangotutorial.git dest=/var/www/my-app
tags: deploy
Run Code Online (Sandbox Code Playgroud)
用户可能有某些东西,或者运行ansible的用户,或者密钥等,但我来回试了几个小时,我现在更加困惑......我只是不知道该怎么做才能调试它并找出问题所在和错过的问题.
谢谢.
根据我的理解,/ etc/init.d目录包含init在引导时执行的脚本.这仅适用于Debian或Ubuntu 14.04吗?
我想知道因为我在init.d目录中有几个脚本,但它们似乎在服务器启动时不运行.有检查日志吗?
例如,当我安装supervisor(apt-get install supervisor
)时,它创建了一个init脚本,/etc/init.d/supervisor
其中应该启动它,但是当我启动服务器时,supervisor不会运行.我有一些其他的例子,所以它似乎与主管脚本无关.
另外,/etc/init.d
和之间有什么区别etc/init
?我很迷惑.
谢谢
给定一个查询集,我用以下内容添加相关对象(ModelA)的计数:
qs = User.objets.all()
qs.annotate(modela__count=models.Count('modela'))
Run Code Online (Sandbox Code Playgroud)
但是,有没有办法计算只满足标准的ModelA?例如,计算ModelA,其中deleted_at为null?
我尝试了两种不能正常工作的解决方案.
1)正如@knbk建议的那样,在注释之前使用过滤器.
qs = User.objects.all().filter(modela__deleted_at__isnull=True).annotate(modela__count=models.Count('modela', distinct=True))
Run Code Online (Sandbox Code Playgroud)
这是django生成的查询的简化版本:
SELECT COUNT(DISTINCT "modela"."id") AS "modela__count", "users".*
FROM "users"
LEFT OUTER JOIN "modela" ON ( "users"."id" = "modela"."user_id" )
WHERE "modela"."deleted_at" IS NULL
GROUP BY "users"."id"
Run Code Online (Sandbox Code Playgroud)
问题来自WHERE子句.实际上,有一个LEFT JOIN,但后来的WHERE条件迫使它成为一个简单的JOIN.我需要将条件提升到JOIN子句中,以使其按预期工作.
所以,而不是
LEFT OUTER JOIN "modela" ON ( "users"."id" = "modela"."user_id" )
WHERE "modela"."deleted_at" IS NULL
Run Code Online (Sandbox Code Playgroud)
当我在纯SQL中直接执行它时,我需要以下内容.
LEFT OUTER JOIN "modela" ON ( "users"."id" = "modela"."user_id" )
AND "modela"."deleted_at" IS NULL
Run Code Online (Sandbox Code Playgroud)
如何在不执行原始查询的情况下更改查询集以获取此值?
2)正如其他人所说,我可以使用条件聚合.
我尝试了以下方法:
qs = User.objects.all().annotate(modela__count=models.Count(Case(When(modela__deleted_at__isnull=True, then=1))))
Run Code Online (Sandbox Code Playgroud)
变成以下SQL查询:
SELECT COUNT(CASE …
Run Code Online (Sandbox Code Playgroud) 我是Ansible的新手,我正在尝试创建多个虚拟环境(每个项目一个,在变量中定义的项目列表).
该任务运行良好,我获得了所有文件夹,但是处理程序不起作用,它不会使用虚拟环境初始化每个文件夹.处理程序中的$ {item} varialbe不起作用.使用with_items时如何使用处理程序?
tasks:
- name: create virtual env for all projects ${projects}
file: state=directory path=${virtualenvs_dir}/${item}
with_items: ${projects}
notify: deploy virtual env
handlers:
- name: deploy virtual env
command: virtualenv ${virtualenvs_dir}/${item}
Run Code Online (Sandbox Code Playgroud) 如何覆盖__getattr__
python 3和继承?
当我使用以下内容时:
class MixinA:
def __getattr__(self, item):
# Process item and return value if known
if item == 'a':
return 'MixinA'
# If it is unknown, pass it along to give
# a chance to another class to handle it
return super().__getattr__(item)
class MixinB:
def __getattr__(self, item):
# Process item and return value if known
if item == 'b':
return 'MixinB'
# If it is unknown, pass it along to give
# a chance to another class …
Run Code Online (Sandbox Code Playgroud) ansible ×5
django ×2
backbone.js ×1
git ×1
gunicorn ×1
javascript ×1
jquery ×1
nginx ×1
python ×1
python-3.4 ×1
python-3.x ×1
sudo ×1
ubuntu-14.04 ×1