我打算使用Ansible playbook在远程服务器上执行shell脚本.
test.sh:
touch test.txt
Run Code Online (Sandbox Code Playgroud)
剧本:
---
- name: Transfer and execute a script.
hosts: server
user: test_user
sudo: yes
tasks:
- name: Transfer the script
copy: src=test.sh dest=/home/test_user mode=0777
- name: Execute the script
local_action: command sudo sh /home/test_user/test.sh
Run Code Online (Sandbox Code Playgroud)
当我运行playbook时,传输成功,但脚本没有执行.
在创建ec2实例时,我们提供密钥对名称.
但通常,我将多个ssh公钥/私钥与任何远程服务器关联.我知道一旦创建了ec2服务器,就无法附加密钥对.所以我想知道在创建实例时是否可以使用多个密钥对.
我最近在我的Mac上安装了zsh和oh-my-zsh.现在当我尝试从终端运行maven命令时,我收到以下错误.
$ mvn install
zsh: command not found: mvn
Run Code Online (Sandbox Code Playgroud)
我在/ Applications目录中安装了Apache maven.目前我的.zshrc文件如下所示.
plugins=(git brew pip mvn mysql-macports python sublime tmux osx)
# ####################
# Maven Config Options
# ####################
export M2_HOME=/Applications/apache-maven-3.3.3
export PATH=$PATH:M2_HOME/bin
Run Code Online (Sandbox Code Playgroud)
如上所示,我将maven安装的位置附加到路径.但我仍然遇到错误.任何帮助表示赞赏.
我有以下Django模型.
class A(models.Model):
tmp = models.ForeignKey(B)
active = models.BooleanField()
class B(models.Model):
active = models.BooleanField()
archived = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)
现在我有以下查询.
A.objects.select_related(B).filter(active=True)
Run Code Online (Sandbox Code Playgroud)
现在,这将获取B的所有对象.现在,如何在模型的子句中包含过滤器active=True和过滤器.archived=Falseselect_relatedB
我有一个非常大的文本文件(45GB).文本文件的每一行包含两个空格分隔的64位无符号整数,如下所示.
4624996948753406865 10214715013130414417
4305027007407867230 4569406367070518418
10817905656952544704 3697712211731468838 ......
我想读取文件并对数字执行一些操作.
void process_data(string str)
{
vector<string> arr;
boost::split(arr, str, boost::is_any_of(" \n"));
do_some_operation(arr);
}
int main()
{
unsigned long long int read_bytes = 45 * 1024 *1024;
const char* fname = "input.txt";
ifstream fin(fname, ios::in);
char* memblock;
while(!fin.eof())
{
memblock = new char[read_bytes];
fin.read(memblock, read_bytes);
string str(memblock);
process_data(str);
delete [] memblock;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我对c ++比较陌生.当我运行此代码时,我遇到了这些问题.
由于以字节读取文件,有时块的最后一行对应于原始文件中的未完成行("4624996948753406865 10214"而不是主文件的实际字符串"4624996948753406865 10214715013130414417").
这段代码运行得非常慢.在具有6GB RAM的64位Intel Core i7 920系统中运行一个块操作需要大约6秒.是否有任何可用于改善运行时的优化技术?
是否有必要在boost分割功能中包含"\n"和空白字符?
我已经阅读了关于C++中的mmap文件,但我不确定这是否是正确的方法.如果是,请附上一些链接.
我有一个基本URL。
BASE_URL = 'https://api.github.com/licenses'
Run Code Online (Sandbox Code Playgroud)
我想基于附加到基本URL的搜索词(Ex-mit)创建一个新的URL。
NEW_URL = 'https://api.github.com/licenses/mit'
Run Code Online (Sandbox Code Playgroud)
我正在使用请求库来构建和调用URL,如下所示。
from requests.compat import urljoin
base_url = 'https://api.github.com/licenses'
new_url = urljoin(base_url, 'mit')
print new_url
Run Code Online (Sandbox Code Playgroud)
但是当我打印new_url时,它弄乱了URL。
https://api.github.com/mit
Run Code Online (Sandbox Code Playgroud)
我不确定如何解决此问题。
我计划自动化aws-rackspace服务器迁移.我正在关注使用rsync进行迁移的官方机架文档(https://github.com/cloudnull/InstanceSync/blob/master/rsrsyncLive.sh).我修改了代码以使用sshpass在与远程服务器建立SSH连接时动态提供登录密码.
sshpass -p "YOUR_PASSWORD" ssh -o StrictHostKeyChecking=no username@IPAddress
Run Code Online (Sandbox Code Playgroud)
但是我在安装sshpass包时遇到了麻烦.
Debian based Distros - Installed Successfully
CentOS - Installed Successfully
Redhat - Package not found (yum list available | grep sshpass)
Amazon Linux - Package not found (yum list available | grep sshpass)
Run Code Online (Sandbox Code Playgroud)
我甚至试过'yum update'然后'yum -y install sshpass'但它没有用.
谢谢,
我想使用Ansible test_db向用户(test_user)授予db()特权。我的命令如下所示。
grant all PRIVILEGES on <test_db>.* to <test_user>@'localhost';
Run Code Online (Sandbox Code Playgroud)
我将如何使用Ansible执行命令。
我在Django中有以下模型。
class User(models.Model):
name = models.CharField(max_length=50)
...
...
@property
def get_info(self, key=None):
value = self.name if key else 'Hello World'
return value
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在Django Shell中执行代码时,出现以下错误。
n [4]: user = User.objects.get(id=1)
n [5]: user.get_info(key='test_key')
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-5-f7b917070aee> in <module>()
----> 1 user.get_info(key='test_key')
TypeError: _get_info() takes exactly 2 arguments (1 given)
Run Code Online (Sandbox Code Playgroud) 我有一个在远程服务器上运行的python virtualenv.我正在尝试使用Ansible使用以下信息更新远程服务器的bashrc.
export WORKON_HOME=~/TestEnvs
source /usr/local/bin/virtualenvwrapper.sh
workon my_virtual_env
Run Code Online (Sandbox Code Playgroud)
有没有办法用Ansible实现这个目标?
我正在使用Facebook的图形API与Python.对于any user_id,它将用户的时区指定为浮点数,表示与UTC的偏移量.
示例:对于印度的某个人,它给出5.5
我将如何转化为有效的此timezone类似Asia/Kolkata?
我已经调查过,pytz但没有找到任何合适的方法来做到这一点.
我使用ansible的ec2_vol模块来创建一个ebs卷.我看到了源代码,发现它在内部调用了带有用户指定参数的boto的create_volume()方法.我想注册ec2_vol模块的返回值并获取新创建的卷的volume_ids.
截至目前我的剧本看起来像
- name: Attach a volume to previously created instances
local_action: ec2_vol instance={{item.id}} volume_size=5 aws_access_key={{aa_key}} aws_secret_key={{as_key}} region={{region}}
with_items: ec2.instances
register: ec2_volumes
ignore_errors: yes
- name: Stop the instances
local_action: command aws ec2 stop-instances --profile=xervmon --instance-id={{item.id}}
with_items: ec2.instances
ignore_errors: yes
- name: Detach volume from instances
local_action: command aws ec2 detach-volume --profile=xervmon --volume-id=????
ignore_errors: yes
Run Code Online (Sandbox Code Playgroud)
我想知道如何获取新创建的卷的体积ID.我看到run_instances()方法的返回对象有一个属性实例,其中包含一个实例列表.但我找不到任何适当的create_volume()方法返回值的文档.
任何帮助表示赞赏.
谢谢,
我有以下字典.
var = a = {
'Black': { 'grams': 1906, 'price': 2.05},
'Blue': { 'grams': 9526, 'price': 22.88},
'Gold': { 'grams': 194, 'price': 8.24},
'Magenta': { 'grams': 6035, 'price': 56.69},
'Maroon': { 'grams': 922, 'price': 18.76},
'Mint green': { 'grams': 9961, 'price': 63.89},
'Orchid': { 'grams': 4970, 'price': 10.78},
'Tan': { 'grams': 6738, 'price': 50.54},
'Yellow': { 'grams': 6045, 'price': 54.19}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能根据它进行排序price.因此,生成的字典将如下所示.
result = {
'Black': { 'grams': 1906, 'price': 2.05},
'Gold': { 'grams': 194, 'price': 8.24}, …Run Code Online (Sandbox Code Playgroud)