commit ccd5bd79512cfed11711bb351489fbb0d5335f30 Author: Chris Hammer Date: Wed Oct 5 14:20:58 2022 -0400 initial project commit diff --git a/ansible.cfg b/ansible.cfg new file mode 100644 index 0000000..a6c023c --- /dev/null +++ b/ansible.cfg @@ -0,0 +1,27 @@ +[defaults] +inventory = hosts +roles_path = roles +collections_path = /etc/ansible/collections +remote_tmp = /tmp/.ansible-${USER}/tmp +gathering = smart +gather_timeout = 300 +fact_path = facts.d +fact_caching = jsonfile +fact_caching_connection = facts.d +fact_caching_timeout = 300 +retry_files_enabled = False +forks = 40 +timeout = 30 +host_key_checking = False +display_skipped_hosts = False +bin_ansible_callbacks = True +callback_whitelist = ansible.posix.profile_tasks, ansible.posix.timer +deprecation_warnings = False +command_warnings = False +#strategy = free + + +[ssh_connection] +pipelining = True +ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o PreferredAuthentications=publickey + diff --git a/facts.d/gitea.thezengarden.net b/facts.d/gitea.thezengarden.net new file mode 100644 index 0000000..78d2f11 --- /dev/null +++ b/facts.d/gitea.thezengarden.net @@ -0,0 +1,3 @@ +{ + "discovered_interpreter_python": "/usr/bin/python3" +} \ No newline at end of file diff --git a/files/gitea.service b/files/gitea.service new file mode 100644 index 0000000..79c3456 --- /dev/null +++ b/files/gitea.service @@ -0,0 +1,90 @@ +[Unit] +Description=Gitea (Git with a cup of tea) +After=syslog.target +After=network.target +### +# Don't forget to add the database service dependencies +### +# +#Wants=mysql.service +#After=mysql.service +# +#Wants=mariadb.service +#After=mariadb.service +# +#Wants=postgresql.service +#After=postgresql.service +# +#Wants=memcached.service +#After=memcached.service +# +#Wants=redis.service +#After=redis.service +# +### +# If using socket activation for main http/s +### +# +#After=gitea.main.socket +#Requires=gitea.main.socket +# +### +# (You can also provide gitea an http fallback and/or ssh socket too) +# +# An example of /etc/systemd/system/gitea.main.socket +### +## +## [Unit] +## Description=Gitea Web Socket +## PartOf=gitea.service +## +## [Socket] +## Service=gitea.service +## ListenStream= +## NoDelay=true +## +## [Install] +## WantedBy=sockets.target +## +### + +[Service] +# Modify these two values and uncomment them if you have +# repos with lots of files and get an HTTP error 500 because +# of that +### +#LimitMEMLOCK=infinity +#LimitNOFILE=65535 +RestartSec=2s +Type=simple +User=git +Group=git +WorkingDirectory=/var/lib/gitea/ +# If using Unix socket: tells systemd to create the /run/gitea folder, which will contain the gitea.sock file +# (manually creating /run/gitea doesn't work, because it would not persist across reboots) +#RuntimeDirectory=gitea +ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini +Restart=always +Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea +# If you install Git to directory prefix other than default PATH (which happens +# for example if you install other versions of Git side-to-side with +# distribution version), uncomment below line and add that prefix to PATH +# Don't forget to place git-lfs binary on the PATH below if you want to enable +# Git LFS support +#Environment=PATH=/path/to/git/bin:/bin:/sbin:/usr/bin:/usr/sbin +# If you want to bind Gitea to a port below 1024, uncomment +# the two values below, or use socket activation to pass Gitea its ports as above +### +#CapabilityBoundingSet=CAP_NET_BIND_SERVICE +#AmbientCapabilities=CAP_NET_BIND_SERVICE +### +# In some cases, when using CapabilityBoundingSet and AmbientCapabilities option, you may want to +# set the following value to false to allow capabilities to be applied on gitea process. The following +# value if set to true sandboxes gitea service and prevent any processes from running with privileges +# in the host user namespace. +### +#PrivateUsers=false +### + +[Install] +WantedBy=multi-user.target diff --git a/gitea.yml b/gitea.yml new file mode 100644 index 0000000..44b487d --- /dev/null +++ b/gitea.yml @@ -0,0 +1,90 @@ +--- +- name: Deploy Gitea + hosts: gitea + become: yes + gather_facts: no + + + vars: + __gitea_version : 1.17.2 + __gitea_arch : amd64 + __gitea_binary : "https://dl.gitea.io/gitea/{{ __gitea_version }}/\ + gitea-{{ __gitea_version }}-linux-{{ __gitea_arch }}" + + __gitea_user: + name : gitea + gecos : Git with a cup of tea + shell : /bin/bash + home : /home/gitea + + + tasks: + - name: Install Git + package : + name : git + state : present + + + - name: Check if Gitea is present and is correct version + command : /usr/local/bin/gitea --version + ignore_errors : yes + changed_when : no + register : r_check_gitea + + + - name: Gitea presence and version verification + debug : + msg : "Gitea binary not found or version mismatch." + when : + - (r_check_gitea.rc == 1 or r_check_gitea.stdout is not search(__gitea_version)) + + + - name: "Fetch Gitea {{ __gitea_version }}" + get_url : + url : "{{ __gitea_binary }}" + dest : /usr/local/bin/gitea + mode : 0755 + when : + - (r_check_gitea.rc == 1 or r_check_gitea.stdout is not search(__gitea_version)) + + + - name: Create Gitea user + user: + name : "{{ __gitea_user.name }}" + comment : "{{ __gitea_user.gecos }}" + shell : "{{ __gitea_user.shell }}" + home : "{{ __gitea_user.home }}" + create_home : yes + state : present + + + - name: Create required directories + file: + path : "{{ item }}" + state : directory + recurse : yes + owner : "{{ __gitea_user.name }}" + group : "{{ __gitea_user.name }}" + mode : 0750 + loop: + - /var/lib/gitea/custom + - /var/lib/gitea/data + - /var/lib/gitea/log + - /etc/gitea + + + - name: Deploy unit file for Gitea + template: + src : templates/gitea.service.j2 + dest : /etc/systemd/system/gitea.service + owner : root + group : root + mode : 0644 + + + - name: Reload Systemd + systemd: + daemon_reload: yes + + +... diff --git a/hosts b/hosts new file mode 100644 index 0000000..7de3833 --- /dev/null +++ b/hosts @@ -0,0 +1,6 @@ +[gitea] +gitea.thezengarden.net ansible_host=10.10.10.109 + +[gitea:vars] +ansible_user=root + diff --git a/templates/gitea.service.j2 b/templates/gitea.service.j2 new file mode 100644 index 0000000..f604dda --- /dev/null +++ b/templates/gitea.service.j2 @@ -0,0 +1,16 @@ +[Unit] +Description=Gitea (Git with a cup of tea) +After=syslog.target +After=network.target + +[Service] +RestartSec=2s +Type=simple +User={{ __gitea_user.name }} +Group={{ __gitea_user.name }} +ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini +Restart=always +Environment=USER={{ __gitea_user.name }} HOME={{ __gitea_user.home }} GITEA_WORK_DIR=/var/lib/gitea + +[Install] +WantedBy=multi-user.target