我可以使用shell getent和awk这样的组合来做到这一点:
getent passwd $user | awk -F: '{ print $6 }'
Run Code Online (Sandbox Code Playgroud)
作为参考,在Puppet中我可以使用自定义事实,如下所示:
require 'etc'
Etc.passwd { |user|
Facter.add("home_#{user.name}") do
setcode do
user.dir
end
end
}
Run Code Online (Sandbox Code Playgroud)
这使得用户的主目录可用作home_<user name>事实.
如何获取任意远程用户的主目录?
作曲家是否提供了更新项目创建包的方法?即,如果我用以下内容创建一个新的laravel项目
composer create-project --prefer-dist laravel/laravel blog
Run Code Online (Sandbox Code Playgroud)
Composer将获取最新版本的laravel/laravel软件包,将其解压缩到博客文件夹中,然后composer install从该blog文件夹运行.
我想要/需要知道的是,作曲家是否为我提供了一种更新laravel/laravel下载到该blog文件夹的包的方法?我知道我可以自己composer update在blog文件夹内运行,但这只会更新在属性中列出compser.json的内容require- 它不会更新未归档laravel/laravel的内容blog(或者它会吗?)
在某些安全角色(例如roles/my-role/)中,我有一些很大的默认变量文件(defaults/main.yml).我想把它main.yml分成几个较小的文件.有可能吗?
我试图创建的文件defaults/1.yml和defaults/2.yml,但他们不会被加载ansible.
我有一个带有两个数组的JSON对象 - 一个keys数组和一个values数组,两者长度相同.使用jmespath,我想构造一个新对象,使用keys数组的值作为键,values数组的值作为值,就像array_combine在PHP中一样.
例如,这是输入:
{
"keys": [
"a",
"b",
"c"
],
"values": [
1,
2,
3
]
}
Run Code Online (Sandbox Code Playgroud)
这是我期待的输出:
{
"a": 1,
"b": 2,
"c": 3
}
Run Code Online (Sandbox Code Playgroud)
有没有内置功能来实现这一目标?
我看到了关于这个主题的上一个问题,但答案只是"将其用于脚本语言!",我觉得这不令人满意.我知道JMESPath有sort_by,sort但是,我无法弄清楚如何使用它们.
我有
aws ec2 describe-instances \
--filters "Name=tag:Group,Values=production" "Name=instance-state-name,Values=running" "Name=tag:Name,Values=prod-*-${CURRENT_SHA}-*" \
--query 'Reservations[*].Instances[*].[LaunchTime,InstanceId,PrivateIpAddress,Tags[?Key==`Name`] | [0].Value]' \
--output table
Run Code Online (Sandbox Code Playgroud)
它只是以随机顺序输出正确的数据.我想按数据的最后一列排序,Tag Name,aka Tags[?Key==`Name`],原始形式如下所示:
{
"Tags": [{
"Value": "application-server-ab3634b34364a-2",
"Key": "Name"
}, {
"Value": "production",
"Key": "Group"
}]
}
Run Code Online (Sandbox Code Playgroud)
思考?