init role
This commit is contained in:
		
						commit
						0a8fdc88f0
					
				
					 4 changed files with 224 additions and 0 deletions
				
			
		
							
								
								
									
										34
									
								
								defaults/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								defaults/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,34 @@
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					gitea_version: 1.17.3
 | 
				
			||||||
 | 
					gitea_arch: "amd64"
 | 
				
			||||||
 | 
					gitea_user: "gitea"
 | 
				
			||||||
 | 
					gitea_dir: "/opt/gitea"
 | 
				
			||||||
 | 
					gitea_dir_etc: "{{gitea_dir}}/etc"
 | 
				
			||||||
 | 
					gitea_dir_bin: "{{gitea_dir}}/bin"
 | 
				
			||||||
 | 
					gitea_dir_var: "{{gitea_dir}}/var"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gitea_domain: "git.corp.local"
 | 
				
			||||||
 | 
					gitea_http_port: 3000
 | 
				
			||||||
 | 
					gitea_local_url: "http://localhost:3000"
 | 
				
			||||||
 | 
					gitea_external_url: "https://{{gitea_domain}}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gitea_ssh_disable: "FALSE"
 | 
				
			||||||
 | 
					gitea_ssh_port: 2222
 | 
				
			||||||
 | 
					gitea_ssh_start: "TRUE"
 | 
				
			||||||
 | 
					gitea_ssh_builtin_user: "git"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gitea_lfs_start: "TRUE"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# gitea_db_type: "mysql"
 | 
				
			||||||
 | 
					gitea_db_type: "sqlite3"
 | 
				
			||||||
 | 
					gitea_db_host: "localhost:3306"
 | 
				
			||||||
 | 
					gitea_db_name: "gitea"
 | 
				
			||||||
 | 
					gitea_db_user: "gitea"
 | 
				
			||||||
 | 
					gitea_db_passwd: "mypassword"
 | 
				
			||||||
 | 
					gitea_db_ssl_mode: "disable"
 | 
				
			||||||
 | 
					gitea_db_path: "{{gitea_dir_var}}/data/gitea.db"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gitea_admin_user: "myadmin"
 | 
				
			||||||
 | 
					gitea_admin_email: "{{gitea_admin_user}}@{{gitea_domain}}"
 | 
				
			||||||
 | 
					gitea_admin_password: "mypassword"
 | 
				
			||||||
							
								
								
									
										87
									
								
								tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,87 @@
 | 
				
			||||||
 | 
					- name: Install prerequisites
 | 
				
			||||||
 | 
					  ansible.builtin.package:
 | 
				
			||||||
 | 
					    name: git
 | 
				
			||||||
 | 
					    state: present
 | 
				
			||||||
 | 
					    update_cache : true
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					- name: Create gitea user
 | 
				
			||||||
 | 
					  ansible.builtin.user:
 | 
				
			||||||
 | 
					    name: "{{gitea_user}}"
 | 
				
			||||||
 | 
					    shell: /bin/bash
 | 
				
			||||||
 | 
					    create_home: no
 | 
				
			||||||
 | 
					    home: '{{gitea_dir}}'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: create gitea dir
 | 
				
			||||||
 | 
					  file:
 | 
				
			||||||
 | 
					    path: '{{gitea_dir}}'
 | 
				
			||||||
 | 
					    state: directory
 | 
				
			||||||
 | 
					    owner: "{{gitea_user}}"
 | 
				
			||||||
 | 
					    group: "{{gitea_user}}"
 | 
				
			||||||
 | 
					    mode: 0755
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: create gitea bin dir
 | 
				
			||||||
 | 
					  file:
 | 
				
			||||||
 | 
					    path: '{{gitea_dir_bin}}'
 | 
				
			||||||
 | 
					    state: directory
 | 
				
			||||||
 | 
					    owner: "{{gitea_user}}"
 | 
				
			||||||
 | 
					    group: "{{gitea_user}}"
 | 
				
			||||||
 | 
					    mode: 0755
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: create gitea etc dir
 | 
				
			||||||
 | 
					  file:
 | 
				
			||||||
 | 
					    path: '{{gitea_dir_etc}}'
 | 
				
			||||||
 | 
					    state: directory
 | 
				
			||||||
 | 
					    owner: "{{gitea_user}}"
 | 
				
			||||||
 | 
					    group: "{{gitea_user}}"
 | 
				
			||||||
 | 
					    mode: 0755
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: create gitea var dir
 | 
				
			||||||
 | 
					  file:
 | 
				
			||||||
 | 
					    path: '{{gitea_dir_var}}'
 | 
				
			||||||
 | 
					    state: directory
 | 
				
			||||||
 | 
					    owner: "{{gitea_user}}"
 | 
				
			||||||
 | 
					    group: "{{gitea_user}}"
 | 
				
			||||||
 | 
					    mode: 0755
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Check if gitea binarie is already installed
 | 
				
			||||||
 | 
					  stat:
 | 
				
			||||||
 | 
					    path: '{{gitea_dir_bin}}/gitea'
 | 
				
			||||||
 | 
					  register: gitea_exist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Download statically linked cfssl binary
 | 
				
			||||||
 | 
					  get_url:
 | 
				
			||||||
 | 
					    url: https://dl.gitea.io/gitea/{{gitea_version}}/gitea-{{gitea_version}}-linux-{{gitea_arch}}
 | 
				
			||||||
 | 
					    dest: '{{gitea_dir_bin}}/gitea'
 | 
				
			||||||
 | 
					    mode: 0755
 | 
				
			||||||
 | 
					  when: gitea_exist.stat.exists == false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: creating gitea config file
 | 
				
			||||||
 | 
					  template:
 | 
				
			||||||
 | 
					    src: app.ini.j2
 | 
				
			||||||
 | 
					    dest: '{{gitea_dir_etc}}/app.ini'
 | 
				
			||||||
 | 
					    owner: "{{gitea_user}}"
 | 
				
			||||||
 | 
					    group: "{{gitea_user}}"
 | 
				
			||||||
 | 
					    mode: 0700
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Création du fichier de service /lib/systemd/system/gitea.service
 | 
				
			||||||
 | 
					  ansible.builtin.template:
 | 
				
			||||||
 | 
					    src: gitea.service.j2
 | 
				
			||||||
 | 
					    dest: /lib/systemd/system/gitea.service
 | 
				
			||||||
 | 
					    owner: root
 | 
				
			||||||
 | 
					    group: root
 | 
				
			||||||
 | 
					    mode: 0644
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name : Create firewall rules
 | 
				
			||||||
 | 
					  ansible.builtin.shell: 'firewall-cmd --zone=public --permanent --add-port={{gitea_http_port}}/tcp && firewall-cmd --reload'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: create gitea database
 | 
				
			||||||
 | 
					  shell: "su - {{gitea_user}} -c '{{gitea_dir_bin}}/gitea migrate --config {{gitea_dir_etc}}/app.ini'"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: create gitea admin user
 | 
				
			||||||
 | 
					  shell: "su - {{gitea_user}} -c '{{gitea_dir_bin}}/gitea admin user create --username {{gitea_admin_user}} --password {{gitea_admin_password}} --email {{gitea_admin_email}} --admin --config {{gitea_dir_etc}}/app.ini'"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Démarrage et activation du service gitea
 | 
				
			||||||
 | 
					  ansible.builtin.service:
 | 
				
			||||||
 | 
					    name: gitea
 | 
				
			||||||
 | 
					    state: started
 | 
				
			||||||
 | 
					    enabled: true
 | 
				
			||||||
							
								
								
									
										82
									
								
								templates/app.ini.j2
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								templates/app.ini.j2
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,82 @@
 | 
				
			||||||
 | 
					APP_NAME = {{gitea_domain}}
 | 
				
			||||||
 | 
					RUN_USER = {{gitea_user}}
 | 
				
			||||||
 | 
					RUN_MODE = prod
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[server]
 | 
				
			||||||
 | 
					LOCAL_ROOT_URL   = {{gitea_local_url}}
 | 
				
			||||||
 | 
					SSH_DOMAIN       = {{gitea_domain}}
 | 
				
			||||||
 | 
					DOMAIN           = {{gitea_domain}}
 | 
				
			||||||
 | 
					HTTP_PORT        = {{gitea_http_port}}
 | 
				
			||||||
 | 
					ROOT_URL         = {{gitea_external_url}}
 | 
				
			||||||
 | 
					DISABLE_SSH      = {{gitea_ssh_disable}}
 | 
				
			||||||
 | 
					BUILTIN_SSH_SERVER_USER = {{gitea_ssh_builtin_user}}
 | 
				
			||||||
 | 
					SSH_PORT         = {{gitea_ssh_port}}
 | 
				
			||||||
 | 
					START_SSH_SERVER = {{gitea_ssh_start}}
 | 
				
			||||||
 | 
					LFS_START_SERVER = {{gitea_lfs_start}}
 | 
				
			||||||
 | 
					LFS_JWT_SECRET   = 
 | 
				
			||||||
 | 
					OFFLINE_MODE     = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[database]
 | 
				
			||||||
 | 
					DB_TYPE  = {{gitea_db_type}}
 | 
				
			||||||
 | 
					HOST     = {{gitea_db_host}}
 | 
				
			||||||
 | 
					NAME     = {{gitea_db_name}}
 | 
				
			||||||
 | 
					USER     = {{gitea_db_user}}
 | 
				
			||||||
 | 
					PASSWD   = {{gitea_db_passwd}}
 | 
				
			||||||
 | 
					SCHEMA   = 
 | 
				
			||||||
 | 
					SSL_MODE = {{gitea_db_ssl_mode}}
 | 
				
			||||||
 | 
					CHARSET  = utf8
 | 
				
			||||||
 | 
					LOG_SQL  = false
 | 
				
			||||||
 | 
					PATH = {{gitea_db_path}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[repository]
 | 
				
			||||||
 | 
					ROOT = {{gitea_dir}}/var/data/gitea-repositories
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[lfs]
 | 
				
			||||||
 | 
					PATH = {{gitea_dir}}/var/data/lfs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[mailer]
 | 
				
			||||||
 | 
					ENABLED = true
 | 
				
			||||||
 | 
					MAILER_TYPE = smtp
 | 
				
			||||||
 | 
					HOST=localhost:25
 | 
				
			||||||
 | 
					FROM    = no-reply@git.gresse.net
 | 
				
			||||||
 | 
					IS_TLS_ENABLED = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[service]
 | 
				
			||||||
 | 
					REGISTER_EMAIL_CONFIRM            = false
 | 
				
			||||||
 | 
					ENABLE_NOTIFY_MAIL                = false
 | 
				
			||||||
 | 
					DISABLE_REGISTRATION              = true
 | 
				
			||||||
 | 
					ALLOW_ONLY_EXTERNAL_REGISTRATION  = false
 | 
				
			||||||
 | 
					ENABLE_CAPTCHA                    = false
 | 
				
			||||||
 | 
					REQUIRE_SIGNIN_VIEW               = false
 | 
				
			||||||
 | 
					DEFAULT_KEEP_EMAIL_PRIVATE        = false
 | 
				
			||||||
 | 
					DEFAULT_ALLOW_CREATE_ORGANIZATION = true
 | 
				
			||||||
 | 
					DEFAULT_ENABLE_TIMETRACKING       = true
 | 
				
			||||||
 | 
					NO_REPLY_ADDRESS                  = noreply.localhost
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[picture]
 | 
				
			||||||
 | 
					DISABLE_GRAVATAR        = false
 | 
				
			||||||
 | 
					ENABLE_FEDERATED_AVATAR = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[openid]
 | 
				
			||||||
 | 
					ENABLE_OPENID_SIGNIN = false
 | 
				
			||||||
 | 
					ENABLE_OPENID_SIGNUP = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[session]
 | 
				
			||||||
 | 
					PROVIDER = file
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[log]
 | 
				
			||||||
 | 
					MODE      = console
 | 
				
			||||||
 | 
					LEVEL     = info
 | 
				
			||||||
 | 
					ROOT_PATH = /opt/gitea/var/log
 | 
				
			||||||
 | 
					ROUTER    = console
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[repository.pull-request]
 | 
				
			||||||
 | 
					DEFAULT_MERGE_STYLE = merge
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[repository.signing]
 | 
				
			||||||
 | 
					DEFAULT_TRUST_MODEL = committer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[security]
 | 
				
			||||||
 | 
					INSTALL_LOCK       = true
 | 
				
			||||||
 | 
					INTERNAL_TOKEN     = 
 | 
				
			||||||
 | 
					PASSWORD_HASH_ALGO = pbkdf2
 | 
				
			||||||
							
								
								
									
										21
									
								
								templates/gitea.service.j2
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								templates/gitea.service.j2
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,21 @@
 | 
				
			||||||
 | 
					[Unit]
 | 
				
			||||||
 | 
					Description=Gitea (Git with a cup of tea)
 | 
				
			||||||
 | 
					After=syslog.target
 | 
				
			||||||
 | 
					After=network.target
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Wants=mariadb.service
 | 
				
			||||||
 | 
					After=mariadb.service
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Service]
 | 
				
			||||||
 | 
					LimitNOFILE=524288:524288
 | 
				
			||||||
 | 
					RestartSec=2s
 | 
				
			||||||
 | 
					Type=simple
 | 
				
			||||||
 | 
					User={{gitea_user}}
 | 
				
			||||||
 | 
					Group={{gitea_user}}
 | 
				
			||||||
 | 
					WorkingDirectory={{gitea_dir_var}}
 | 
				
			||||||
 | 
					ExecStart={{gitea_dir_bin}}/gitea web --config {{gitea_dir_etc}}/app.ini
 | 
				
			||||||
 | 
					Restart=always
 | 
				
			||||||
 | 
					Environment=USER=gitea HOME={{gitea_dir}} GITEA_WORK_DIR={{gitea_dir_var}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Install]
 | 
				
			||||||
 | 
					WantedBy=multi-user.target
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue