所以现在,如果我想把一个应用程序部署到舞台上,我可以简单地运行这个playbook命令:
ansible-playbook -i environments/staging/hosts deploy-app.yml
例如,我将staging/group_vars/webserver中的app1目录的路径定义为“/var/www/staging.app1.com”。但是我也需要为app2部署到相同的服务器上,但是目录不同。是否可以在group_vars中使用条件变量?
所以如果我跑:
ansible-playbook -i environments/staging/hosts deploy-app.yml --extra-vars "app_name=app1"
ansible-playbook -i environments/staging/hosts deploy-app.yml --extra-vars "app_name=app2"
if app_name = app1, then app_dir = /var/www/staging.app1.com
elif app_name = app2, then app_dir = /var/www/staging.app2.com
敬请指教
可以在组变量中对app_dir
进行模板:
app_dir: '/var/www/staging.{{ app_name }}.com'
如果有更多依赖于应用程序的变量,并且这些变量不可模板化,则可以在变量文件中使用apps
dict:
apps:
app1:
dir: '/var/www/app1'
key: 'klg23sdkjfsdf'
db_host: '127.0.0.1'
app2:
dir: '/opt/apps/app2'
key: 'askjh233423444'
db_host: '127.0.1.1'
当需要app_dir时,使用apps[app_name].dir
等等。
条件变量 条件变量(conditional variable)的常见接口是这样的: wait:当前线程开始等待这个条件变量 notify_one:让某一个等待此条件变量的线程继续运行 notify_all:让所有等待此变量的线程继续运行 条件变量和互斥锁的区别在于,互斥锁解铃还须系铃人,但条件变量可以由任何来源发出 notify 信号。同时,互斥锁的一次 lock 一定对应一次 unlock,但条
我目前正在试图隐藏特定的元素,如果我的应用程序中的creditUser的信用低于特定菜肴的成本。(这是一个点菜系统,只是为了训练目的)我不知道如何设置thymeleaf条件,让它工作... 我试过各种各样的解决方案,但我能在互联网上找到的都是这样的:th:if=“*{score<20和score>=0}”
条件变量(Condition variables)提供了同步语义,它会将一个线程阻塞住(block)直到被其他线程所唤醒(notify)或到达了系统超时时间。 不过Stroustrup尚未完成此主题,期待中。 参看: Standard: 30.5 Condition variables(thread.condition) (翻译:interma)
问题内容: 我如何在for循环中创建变量变量? 这是循环: 在此循环中,我想为每次传递创建一个$ seat变量,但必须像这样递增。第一次通过应该是,下次通过:等等。 所以最后应该是: 等等。 因此$ _POST的变量和内容应该是动态的。 问题答案: 首先,除非缺少某些内容,否则我将为此使用数组。具有像变量,等趋于具有少得多的效用和是更为繁琐比使用的阵列。 话虽这么说,使用以下语法: 最后,PHP具
我正在研究哲学家进餐问题,n位哲学家轮流思考和进餐。我想有一个版本,哲学家们会按照id的顺序进食:0,1,2,3,4。。。,但是我的线程一直被阻塞。我的线程从调用PhilosopherThread开始。 我想把哲学家们整理好有点麻烦。我只能在线程堵塞之前吃前2个线程。 编辑:据我所知,我这样做是对的。我首先锁定互斥锁,然后检查pindex是否是当前线程id,如果不是,线程将等待,直到pindex等
管程和条件变量 原理回顾 引入了管程是为了将对共享资源的所有访问及其所需要的同步操作集中并封装起来。Hansan为管程所下的定义:“一个管程定义了一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中的数据”。有上述定义可知,管程由四部分组成: 管程内部的共享变量; 管程内部的条件变量; 管程内部并发执行的进程; 对局部于管程内部的共享数据设置初始值的语句。