Gemini deploy
This commit is contained in:
54
roles/gemini_cli_user/tasks/main.yml
Normal file
54
roles/gemini_cli_user/tasks/main.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
---
|
||||
# tasks file for roles/gemini_cli_user
|
||||
|
||||
- name: Ensure Node.js and npm are installed
|
||||
package:
|
||||
name:
|
||||
- nodejs
|
||||
- npm
|
||||
state: present
|
||||
become: yes
|
||||
|
||||
- name: Create gemini user
|
||||
user:
|
||||
name: gemini
|
||||
state: present
|
||||
create_home: yes
|
||||
become: yes
|
||||
|
||||
- name: Add SSH authorized key for gemini user
|
||||
authorized_key:
|
||||
user: gemini
|
||||
state: present
|
||||
key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII823CLHAgx4nTaTr0Wys65YWN9pVnDfbWvsZcFwCnWl"
|
||||
become: yes
|
||||
|
||||
- name: Install @google/gemini-cli for gemini user
|
||||
command: su - gemini -c "npm install @google/gemini-cli"
|
||||
args:
|
||||
creates: /home/gemini/node_modules/.bin/gemini-cli
|
||||
become: yes
|
||||
|
||||
- name: Define gemini-cli path
|
||||
set_fact:
|
||||
gemini_cli_bin: "/home/gemini/node_modules/.bin/gemini"
|
||||
|
||||
- name: Ensure gemini-cli binary exists
|
||||
stat:
|
||||
path: "{{ gemini_cli_bin }}"
|
||||
register: gemini_cli_stat
|
||||
|
||||
- name: Ensure gemini-cli is in /etc/shells
|
||||
lineinfile:
|
||||
path: /etc/shells
|
||||
line: "{{ gemini_cli_bin }}"
|
||||
state: present
|
||||
become: yes
|
||||
when: gemini_cli_stat.stat.exists
|
||||
|
||||
- name: Change gemini user shell to gemini-cli
|
||||
user:
|
||||
name: gemini
|
||||
shell: "{{ gemini_cli_bin }}"
|
||||
become: yes
|
||||
when: gemini_cli_stat.stat.exists
|
||||
Reference in New Issue
Block a user