mirror of
https://pagure.io/fedora-infra/ansible.git
synced 2026-06-27 23:57:02 +08:00
157 lines
4.4 KiB
YAML
157 lines
4.4 KiB
YAML
- name: check/create instance
|
|
hosts: 209.132.184.142
|
|
user: root
|
|
gather_facts: False
|
|
|
|
vars_files:
|
|
- /srv/web/infra/ansible/vars/global.yml
|
|
- ${private}/vars.yml
|
|
|
|
tasks:
|
|
- include: $tasks/persistent_cloud.yml
|
|
- include: $tasks/growroot_cloud.yml
|
|
|
|
- name: provision instance
|
|
hosts: 209.132.184.142
|
|
user: root
|
|
gather_facts: True
|
|
|
|
vars_files:
|
|
- /srv/web/infra/ansible/vars/global.yml
|
|
- ${private}/vars.yml
|
|
- ${vars}/${ansible_distribution}.yml
|
|
|
|
tasks:
|
|
- include: $tasks/cloud_setup_basic.yml
|
|
- name: mount up disk of copr repo
|
|
action: mount name=/srv/copr-repo src='LABEL=copr-repo' fstype=ext4 state=mounted
|
|
|
|
- name: mount up disk of copr work
|
|
action: mount name=/srv/copr-work src='LABEL=copr-work' fstype=ext4 state=mounted
|
|
|
|
# open up ports (22, 80, 443)
|
|
- name: poke holes in the firewall
|
|
action: command lokkit $item
|
|
with_items:
|
|
- --service=ssh
|
|
- --service=https
|
|
- --service=http
|
|
|
|
|
|
# packages needed
|
|
- name: add packages for copr-be
|
|
action: yum state=present name=$item
|
|
with_items:
|
|
- ansible
|
|
- lighttpd
|
|
- euca2ools
|
|
- rsync
|
|
- openssh-clients
|
|
- mock
|
|
- yum-utils
|
|
- createrepo
|
|
- python-bunch
|
|
- python-requests
|
|
- git
|
|
- screen
|
|
|
|
|
|
# setup webserver
|
|
- name: add config for copr-repo path
|
|
action: copy src=$files/copr/lighttpd/lighttpd.conf dest=/etc/lighttpd/lighttpd.conf owner=root group=root mode=0644
|
|
notify:
|
|
- restart lighttpd
|
|
|
|
# mime default to text/plain and enable dirlisting for indexes
|
|
- name: update lighttpd configs
|
|
action: copy src=$files/copr/lighttpd/$item dest=/etc/lighttpd/conf.d/$item owner=root group=root mode=0644
|
|
with_items:
|
|
- dirlisting.conf
|
|
- mime.conf
|
|
notify:
|
|
- restart lighttpd
|
|
|
|
- name: start webserver
|
|
action: service state=running enabled=yes name=lighttpd
|
|
|
|
- name: make copr account
|
|
action: user name=copr state=present system=yes home=/srv/copr-work/copr
|
|
|
|
- name: setup dirs there
|
|
action: file state=directory path=/srv/copr-work/copr/$item owner=copr group=copr mode=0700
|
|
with_items:
|
|
- cloud
|
|
- .ssh
|
|
|
|
- name: add copr-buildsys keys to copr user path
|
|
action: copy src=$item dest=/srv/copr-work/copr/cloud/ owner=copr group=copr mode=0600
|
|
with_fileglob: $private/files/openstack/copr-copr/*
|
|
|
|
- name: setup privkey for copr user
|
|
action: copy src=$private/files/copr/buildsys.priv dest=/srv/copr-work/copr/.ssh/id_rsa owner=copr group=copr mode=600
|
|
|
|
- name: setup copr user ssh config file
|
|
action: copy src=$files/copr/ssh_config dest=/srv/copr-work/copr/.ssh/config owner=copr group=copr mode=600
|
|
|
|
- name: replace bashrc for copr user
|
|
action: copy src=$files/copr/copr_bashrc dest=/srv/copr-work/copr/.bashrc owner=copr group=copr mode=600
|
|
|
|
- name: auth_key so we can login to localhost as the copr user from the copr user
|
|
action: authorized_key user=copr key="{{ item }}"
|
|
with_file:
|
|
- ${files}/copr/provision/files/buildsys.pub
|
|
|
|
- name: set dir ownership for copr-work and copr-repo
|
|
action: file state=directory path=$item owner=copr group=copr
|
|
with_items:
|
|
- /srv/copr-work
|
|
- /srv/copr-work/copr
|
|
|
|
# setup dirs for the ansible execution off of provisioning
|
|
- name: dirs from provision
|
|
action: file state=directory path=/srv/copr-work/provision/$item owner=copr group=copr
|
|
with_items:
|
|
- action_plugins
|
|
- library
|
|
- files
|
|
- files/mock
|
|
tags:
|
|
- provision_config
|
|
|
|
- name: put ansible.cfg for all this into /etc/ansible/ on the system
|
|
action: copy src=$files/copr/provision/ansible.cfg dest=/etc/ansible/ansible.cfg
|
|
tags:
|
|
- provision_config
|
|
|
|
|
|
- name: put some files into the provision subdir
|
|
action: copy src=$files/copr/provision/$item dest=/srv/copr-work/provision/$item
|
|
with_items:
|
|
- inventory
|
|
- builderpb.yml
|
|
- terminatepb.yml
|
|
tags:
|
|
- provision_config
|
|
|
|
- name: put files into the files subdir off of provisioning
|
|
action: copy src=$item dest=/srv/copr-work/provision/files/
|
|
with_fileglob: $files/copr/provision/files/*
|
|
tags:
|
|
- provision_config
|
|
|
|
# ansible lacks a recurse - so we need this until then
|
|
- name: put files into the files/mock subdir off of provisioning
|
|
action: copy src=$item dest=/srv/copr-work/provision/files/mock
|
|
with_fileglob: $files/copr/provision/files/mock/*
|
|
tags:
|
|
- provision_config
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
handlers:
|
|
- include: $handlers/restart_services.yml
|