ansible部署sftp

在使用 Ansible 部署 SFTP 服务的过程中,通常可以按照以下步骤进行:
一、环境准备
安装 Ansible
:确保你的控制节点上已经安装了 Ansible。
目标主机准备
:确保目标主机可以通过 SSH 访问,并且已经安装了 OpenSSH 服务。
二、创建 Ansible Playbook
以下是一个简单的 Ansible Playbook 示例,用于部署 SFTP 服务。
—
– name: Deploy SFTP server
hosts: sftp_servers
become: yes

tasks:
– name: Install OpenSSH server
apt:
name: openssh-server
state: present
when: ansible_os_family == “Debian”

– name: Ensure sshd_config allows SFTP
lineinfile:
path: /etc/ssh/sshd_config
regexp: ‘^Subsystem sftp’
line: ‘Subsystem sftp internal-sftp’
notify: Restart ssh

– name: Create SFTP user
user:
name: sftpuser
shell: /usr/sbin/nologin
home: /home/sftpuser
create_home: yes
password: “{{ ‘your_password’ | password_hash(‘sha512’) }}”

– name: Set up SFTP directory
file:
path: /home/sftpuser/uploads
state: directory
owner: sftpuser
group: sftpuser
mode: ‘0755’

– name: Restrict SFTP user to their home directory
lineinfile:
path: /etc/ssh/sshd_config
line: ‘Match User sftpuser\n ChrootDirectory /home/sftpuser\n ForceCommand internal-sftp\n AllowTcpForwarding no\n X11Forwarding no’
notify: Restart ssh

handlers:
– name: Restart ssh
service:
name: ssh
state: restarted
三、运行 Playbook
在终端中执行以下命令来运行 Playbook:
ansible-playbook -i inventory sftp_deploy.yml
四、运维实例解析
用户管理
:Playbook 中创建了一个名为
sftpuser
的用户,并设置其使用
nologin
shell,这样可以限制用户通过 SSH 登录。
目录权限
:通过设置
uploads
目录的权限,确保用户只能在该目录下操作。
SSH 配置
:修改
sshd_config
文件以启用 SFTP,并限制用户只能在自己的家目录中操作。
五、后续维护
定期检查 SFTP 日志,确保服务正常运行。
监控用户活动,防止不当访问。
这样你就可以通过 Ansible 部署和管理 SFTP 服务了。如果有任何具体问题,欢迎继续提问!