Articles of 自动化

Docker和小型生产服务器基础设施build议

我搞清楚如何设置我的生产服务器的最佳方式,但我有点卡住如何正确地做到这一点: 目前,我所有的Web应用程序都被dockerified ,我有: 一个nginx前端容器,将请求路由到多个后端容器: 一个Symfony应用程序 两个WordPress的博客 一个NodeJS应用程序 一个用于数据库存储的MySql容器 一个MongoDB容器也是如此 所有这些基础设施都是使用docker-compose开始的。 这工作正常,但它听起来太“monolitihic”对我来说: 我不能停止一个容器而不重新启动所有其他容器。 我无法添加其他Web应用程序,无需重新启动一切 我没有办法在崩溃后自动重启容器… 这是我第一次这样做,你知道一些最佳实践或软件,可以帮助我提高我的生产服务器? 非常感谢 !

如何通过HTTP协议设置git钩子来自动化远程服务器上的开发

我正在使用git进行版本控制,我想要自动化git以将任何协作者自动将发布分支推送到远程服务器,如果我想通过ssh执行此操作,则必须将所有协作者ssh-keys添加到我的服务器,但我不想让他们访问服务器,所以我想通过HTTP设置这个git挂钩,以便每个人都可以通过HTTP协议推送到远程服务器 到目前为止我所做的是设置一个git钩子,并且使用Nginx作为web服务,并且把裸露的git仓库 /var/www/html/test_repo 我在本地计算机上设置了我的git remote: git remote add test http://ServerIp/test_repo 但它给了我这个错误: fatal: repository 'http://ServerIp/test_repo/' not found

运行Puppet代理程序时出现“无法分配内存”

我运行“puppet agent -t”时出现以下错误: Cannot allocate memory – /bin/uname -s … Cannot allocate memory – /sbin/arp -an … Cannot allocate memory – /bin/uname -s … Could not retrieve kernelversion: private method `split' called for nil:NilClass Could not retrieve kernelmajversion: private method `split' called for nil:NilClass … 完整的错误在这里: http : //pastebin.com/fhjqrgBn 当我手动运行命令/bin/uname -s ,我得到的结果没有任何错误。 free命令显示了这一点: total used […]

自动化input键盘不能用于Linux Mint 15

我已经为Linux Mint 14的用户(也可以在Ubuntu 12.10上使用)制作了这个后期安装脚本,现在我正在为Linux Mint 15和“echo -ne”testing它。 sudo add-apt-repository ppa:some-ppa-to-add'命令在Linux Mint 15上不起作用,但仍然可以在Mint 14上运行。我想为新版本的Linux Mint更新这个脚本。 这里有一个链接到我的后安装scipt: Minty开发 Mint 14的输出如下所示: $ echo -ne "\n" | sudo add-apt-repository ppa:apt-fast/stable You are about to add the following PPA to your system: This PPA contains tested (stable) builds of apt-fast. More info: https://launchpad.net/~apt-fast/+archive/stable gpg: keyring `/tmp/tmpddxueh/secring.gpg' created gpg: requesting key […]

安装脚本运行然后重新启动并继续

我有一个脚本,是一个特定的软件预安装脚本。 该脚本负责安装的许多先决条件以及内核configuration。 我想要做的是创build一组脚本来自动完成这个软件的安装,我想知道的是,如果有一种方法来重新启动一个脚本,然后一次启动第二个脚本将自动执行post reboot命令来完成安装。 我有几个盒子,我需要运行这个(超过40-50),真的很感激一种方法来做这样一个任务,我可以运行第一个脚本,并负责重新启动和完成安装。 有任何想法吗?

在expect脚本中包含#include

所以我在使用期望脚本制作TestCases时遇到了麻烦,我有10个TestCases,它们都以相同的“函数”(例如login和注销或closures某些标志)开始和结束,是否有可能包含它们或从我的远程执行它们脚本,像spawn login.exp甚至更好地把他们的function? TC01.exp #!/usr/bin/expect -f set timeout 5 #example of getting arguments passed from command line.. #not necessarily the best practice for passwords though… set server [lindex $argv 0] set user [lindex $argv 1] set pass [lindex $argv 2] set no [lindex $argv 3] set counter 0 # connect to server via ssh, login, and […]

来自任务的可变呼叫处理程序

我想为pipe理员创build一个conf文件,并在创build文件后由pipe理员用一个处理程序“重读”。 我的任务: – name: add supervised conf sudo: yes template: src=default.conf.j2 dest="/etc/supervisor/conf.d/{{item.name}}.conf" with_items: "{{supervisorConfs}}" notify: – task with variable 我的经理: – name: task with variable debug: "{{item}}" 任何想法如何可以做到?

TextBelt免费短信发短信API不起作用

我最近使用textBelt的免费testingAPI来尝试发送短信,我正在考虑将其embedded到我正在构build的一个小应用程序中。 它看起来像不工作了,或者至less不是在我的机器,或者我不知道它在我的terminal上返回true。 任何人都有这个想法。 curl http://textbelt.com/text -d number=2563567890 -d "message=text goes here"

如何自动化多服务Web应用程序的Docker开发环境启动(在Linux上)

我现在必须执行以下9个步骤才能在Ubuntu 16.04上使用Docker启动我的开发堆栈,然后才能开始编写代码: 打开一个terminal,并进入服务#1的源代码目录 docker – 编写服务#1(Python / Django,Redis和Postgres容器) docker exec service1 bash; 启动Django dev服务器进行debugging 重复服务#2,使用terminal标签保持组织 打开一个terminal,并进入前端Angular应用程序源目录 用npm运行一个webpack dev服务器 打开一个或多个terminal,并cd到相应的源代码目录进行编辑 我尝试编写一个shell脚本,用gnome-terminal –tab -e "bash -c docker-compose up"等方式启动所有的东西,但是这样会变得笨拙,在尝试shell到容器中运行时会失败,例如gnome-terminal –tab -e "bash -c \"docker-compose exec service1 bash -c rundev.sh \"" 。 我也尝试过使用xdotool ,但是由于某种原因它无法识别xdotool shellterminal标签。 在两个后端服务上运行一个SPA,并在三个代码库上进行本地开发,对于Docker应用程序开发来说,这似乎不是一个奇怪的用例。 有没有人有任何build议的工具或替代开发环境设置简化的东西?

在Python中正确地终止selenium浏览器

完成以下Python代码的运行后: from selenium.webdriver import Firefox from contextlib import closing with closing(Firefox()) as browser: # some code here 在我的Linux机器上仍然有监听的geckodriver进程。 $ ss -arp LISTEN 0 128 localhost:44132 *:* users:(("geckodriver",21698,3)) LISTEN 0 128 localhost:57893 *:* users:(("geckodriver",20242,3)) LISTEN 0 128 localhost:34439 *:* users:(("geckodriver",19440,3)) LISTEN 0 128 localhost:35435 如何调整Python代码,以便它终止进程?