ivansible.lin_rclone
ivansible.lin_rclone
此角色在Linux上安装rclone,创建用于挂载的fuse包装器,配置远程,添加fstab条目或systemd挂载单元,并触发systemd自动挂载器。它还创建了rclone
组,以便对rclone配置和非root挂载进行只读访问。
要求
无
变量
可用变量如下所示,带有默认值。
lin_rclone_version: latest
lin_rclone_repo_owner: rclone
lin_rclone_upgrade: false
设置rclone下载位置,允许升级已安装的二进制文件。
lin_rclone_binary: /usr/bin/rclone
lin_rclone_config: /etc/rclone/rclone.conf
这两个值很少被修改。
lin_rclone_allow_nonroot: false
lin_rclone_group_gid: 911
Ansible将创建一个unix组rclone
,具有给定的ID。如果allow_nonroot
为真,远程用户将被添加到该组并因此拥有对rclone配置和非root rclone挂载的读取访问权限。
lin_rclone_idle_timeout: 900
lin_rclone_mount_timeout: 10
lin_rclone_vfs_cache_mode: writes
lin_rclone_dir_cache_time: 30s
lin_rclone_mount_verb: mount, cmount, mount2或none
这些设置配置一些特定的挂载选项。
lin_rclone_bash_alias: true
在用户配置文件中创建命令别名_rc_。
lin_rclone_mounts: []
挂载列表。每个挂载由一个字典描述,如下所示。
挂载项
name: remote
远程的名称。必需。
path: /mnt/remote
挂载点。
即使mount
为no
,也必需(然后将其从fstab和systemd中删除)。
enabled: true
可选布尔值,默认为true
。如果为false,ansible将跳过此项。
config: |
type = ...
token = [TOKEN]
要添加到rclone配置文件中的明文远程部分。该部分可以包含一个特殊占位符[TOKEN]
(字面意思),该占位符将被此远程的授权替换。
token: '{json...}'
可选字符串,包含该远程的授权令牌,格式为自由格式。 由于通常这是一个JSON字典,请将字符串放在单引号中,以避免与Ansible YAML解析器产生问题。
reuse_token: false
这可以是true、false、空字符串或rclone配置中的部分名称。 当这个值为false或空字符串(默认)时,只有上述配置的令牌会被提供给远程(如果存在)。如果这个值为true,ansible将查找配置中的先前令牌,并优先使用找到的那个。如果没有找到,ansible将退回到上述字面令牌。默认情况下,先前的令牌在与该远程名称相同的部分中查找,但您可以提供一个自定义部分名称,而不是在这里使用true。
mount: true
可选布尔值。当为true(默认值)时,挂载将被添加到fstab或systemd。当为false时,挂载条目将被移除(如果找到)。
systemd: <取决于lin_rclone_prefer_systemd>
可选布尔值,默认为lin_rclone_prefer_systemd
。
如果为true,将创建一个systemd单元。
如果为false,将添加fstab行。
automount: false
可选布尔值,默认为false。如果为true,相应的fstab条目的systemd自动挂载器将被启用。
nonroot: false
通常rclone挂载仅对root可访问。如果nonroot
为true,挂载将对rclone
组的成员以只读方式可访问。
bglog: false
如果为true,后台的rclone进程将在/tmp中生成调试日志。
proxy: proto://host:port
可选代理,协议为http
、https
、socks
、socks5
之一。
标签
lin_rclone_install
-- 安装rclonelin_rclone_wrapper
-- 创建用于挂载的fuse包装器lin_rclone_config
-- 在配置文件中添加远程lin_rclone_mounts
-- 创建fstab/systemd条目并配置自动挂载lin_rclone_bashrc
-- 为rclone创建bash别名lin_rclone_docker_plugin
-- 设置rclone docker插件lin_rclone_all
-- 以上所有项
依赖
此角色从角色ivansible.lin_base
中获取reload systemd daemon
处理程序。
示例剧本
- hosts: mystorage
roles:
- role: ivansible.lin_rclone
lin_rclone_allow_nonroot: true
lin_rclone_mounts:
- name: box
path: /mnt/box
token: "my_box_token"
reuse_token: another_box_section # (或直接为true)
automount: true
nonroot: true
config: |
type = box
token = [TOKEN]
许可证
MIT
作者信息
由IvanSible于2019-2021年创建