2019-04-01 17:38:33 +08:00
|
|
|
---
|
[jjo] add DIND support to contrib/ (#3468)
* [jjo] add DIND support to contrib/
- add contrib/dind with ansible playbook to
create "node" containers, and setup them to mimic
host nodes as much as possible (using Ubuntu images),
see contrib/dind/README.md
- nodes' /etc/hosts editing via `blockinfile` and
`lineinfile` need `unsafe_writes: yes` because /etc/hosts
are mounted by docker, and thus can't be handled atomically
(modify copy + rename)
* dind-host role: set node container hostname on creation
* add "Resulting deployment" section with some CLI outputs
* typo
* selectable node_distro: debian, ubuntu
* some fixes for node_distro: ubuntu
* cpu optimization: add early `pkill -STOP agetty`
* typo
* add centos dind support ;)
* add kubespray-dind.yaml, support fedora
- add kubespray-dind.yaml (former custom.yaml at README.md)
- rework README.md as per above
- use some YAML power to share distros' commonality
- add fedora support
* create unique /etc/machine-id and other updates
- create unique /etc/machine-id in each docker node,
used as seed for e.g. weave mac addresses
- with above, now netchecker 100% passes WoHooOO!
:tada: :tada: :tada:
- updated README.md output from (1.12.1, verified
netcheck)
* minor typos
* fix centos node creation, needs earlier udevadm removal to avoid flaky facts, also verified netcheck Ok \o/
* add Q&D test-distros.sh, back to manual /etc/machine-id hack
* run-test-distros.sh cosmetics and minor fixes
* run-test-distros.sh: $rc fix and minor formatting changes
* run-test-distros.sh output cosmetics
2018-10-15 15:44:02 +08:00
|
|
|
- name: set_fact distro_setup
|
|
|
|
set_fact:
|
|
|
|
distro_setup: "{{ distro_settings[node_distro] }}"
|
|
|
|
|
|
|
|
- name: set_fact other distro settings
|
|
|
|
set_fact:
|
|
|
|
distro_user: "{{ distro_setup['user'] }}"
|
|
|
|
distro_ssh_service: "{{ distro_setup['ssh_service'] }}"
|
|
|
|
distro_extra_packages: "{{ distro_setup['extra_packages'] }}"
|
|
|
|
|
|
|
|
- name: Null-ify some linux tools to ease DIND
|
|
|
|
file:
|
|
|
|
src: "/bin/true"
|
2019-05-03 05:24:21 +08:00
|
|
|
dest: "{{ item }}"
|
[jjo] add DIND support to contrib/ (#3468)
* [jjo] add DIND support to contrib/
- add contrib/dind with ansible playbook to
create "node" containers, and setup them to mimic
host nodes as much as possible (using Ubuntu images),
see contrib/dind/README.md
- nodes' /etc/hosts editing via `blockinfile` and
`lineinfile` need `unsafe_writes: yes` because /etc/hosts
are mounted by docker, and thus can't be handled atomically
(modify copy + rename)
* dind-host role: set node container hostname on creation
* add "Resulting deployment" section with some CLI outputs
* typo
* selectable node_distro: debian, ubuntu
* some fixes for node_distro: ubuntu
* cpu optimization: add early `pkill -STOP agetty`
* typo
* add centos dind support ;)
* add kubespray-dind.yaml, support fedora
- add kubespray-dind.yaml (former custom.yaml at README.md)
- rework README.md as per above
- use some YAML power to share distros' commonality
- add fedora support
* create unique /etc/machine-id and other updates
- create unique /etc/machine-id in each docker node,
used as seed for e.g. weave mac addresses
- with above, now netchecker 100% passes WoHooOO!
:tada: :tada: :tada:
- updated README.md output from (1.12.1, verified
netcheck)
* minor typos
* fix centos node creation, needs earlier udevadm removal to avoid flaky facts, also verified netcheck Ok \o/
* add Q&D test-distros.sh, back to manual /etc/machine-id hack
* run-test-distros.sh cosmetics and minor fixes
* run-test-distros.sh: $rc fix and minor formatting changes
* run-test-distros.sh output cosmetics
2018-10-15 15:44:02 +08:00
|
|
|
state: link
|
|
|
|
force: yes
|
|
|
|
with_items:
|
|
|
|
# DIND box may have swap enable, don't bother
|
|
|
|
- /sbin/swapoff
|
|
|
|
# /etc/hosts handling would fail on trying to copy file attributes on edit,
|
|
|
|
# void it by successfully returning nil output
|
|
|
|
- /usr/bin/lsattr
|
|
|
|
# disable selinux-isms, sp needed if running on non-Selinux host
|
|
|
|
- /usr/sbin/semodule
|
|
|
|
|
|
|
|
- name: Void installing dpkg docs and man pages on Debian based distros
|
|
|
|
copy:
|
|
|
|
content: |
|
|
|
|
# Delete locales
|
|
|
|
path-exclude=/usr/share/locale/*
|
|
|
|
# Delete man pages
|
|
|
|
path-exclude=/usr/share/man/*
|
|
|
|
# Delete docs
|
|
|
|
path-exclude=/usr/share/doc/*
|
|
|
|
path-include=/usr/share/doc/*/copyright
|
2019-04-01 17:38:33 +08:00
|
|
|
dest: /etc/dpkg/dpkg.cfg.d/01_nodoc
|
2021-07-12 15:00:47 +08:00
|
|
|
mode: 0644
|
[jjo] add DIND support to contrib/ (#3468)
* [jjo] add DIND support to contrib/
- add contrib/dind with ansible playbook to
create "node" containers, and setup them to mimic
host nodes as much as possible (using Ubuntu images),
see contrib/dind/README.md
- nodes' /etc/hosts editing via `blockinfile` and
`lineinfile` need `unsafe_writes: yes` because /etc/hosts
are mounted by docker, and thus can't be handled atomically
(modify copy + rename)
* dind-host role: set node container hostname on creation
* add "Resulting deployment" section with some CLI outputs
* typo
* selectable node_distro: debian, ubuntu
* some fixes for node_distro: ubuntu
* cpu optimization: add early `pkill -STOP agetty`
* typo
* add centos dind support ;)
* add kubespray-dind.yaml, support fedora
- add kubespray-dind.yaml (former custom.yaml at README.md)
- rework README.md as per above
- use some YAML power to share distros' commonality
- add fedora support
* create unique /etc/machine-id and other updates
- create unique /etc/machine-id in each docker node,
used as seed for e.g. weave mac addresses
- with above, now netchecker 100% passes WoHooOO!
:tada: :tada: :tada:
- updated README.md output from (1.12.1, verified
netcheck)
* minor typos
* fix centos node creation, needs earlier udevadm removal to avoid flaky facts, also verified netcheck Ok \o/
* add Q&D test-distros.sh, back to manual /etc/machine-id hack
* run-test-distros.sh cosmetics and minor fixes
* run-test-distros.sh: $rc fix and minor formatting changes
* run-test-distros.sh output cosmetics
2018-10-15 15:44:02 +08:00
|
|
|
when:
|
|
|
|
- ansible_os_family == 'Debian'
|
|
|
|
|
|
|
|
- name: Install system packages to better match a full-fledge node
|
|
|
|
package:
|
|
|
|
name: "{{ item }}"
|
|
|
|
state: present
|
|
|
|
with_items: "{{ distro_extra_packages }} + [ 'rsyslog', 'openssh-server' ]"
|
|
|
|
|
|
|
|
- name: Start needed services
|
|
|
|
service:
|
|
|
|
name: "{{ item }}"
|
|
|
|
state: started
|
|
|
|
with_items:
|
|
|
|
- rsyslog
|
|
|
|
- "{{ distro_ssh_service }}"
|
|
|
|
|
2019-05-03 05:24:21 +08:00
|
|
|
- name: Create distro user "{{ distro_user }}"
|
[jjo] add DIND support to contrib/ (#3468)
* [jjo] add DIND support to contrib/
- add contrib/dind with ansible playbook to
create "node" containers, and setup them to mimic
host nodes as much as possible (using Ubuntu images),
see contrib/dind/README.md
- nodes' /etc/hosts editing via `blockinfile` and
`lineinfile` need `unsafe_writes: yes` because /etc/hosts
are mounted by docker, and thus can't be handled atomically
(modify copy + rename)
* dind-host role: set node container hostname on creation
* add "Resulting deployment" section with some CLI outputs
* typo
* selectable node_distro: debian, ubuntu
* some fixes for node_distro: ubuntu
* cpu optimization: add early `pkill -STOP agetty`
* typo
* add centos dind support ;)
* add kubespray-dind.yaml, support fedora
- add kubespray-dind.yaml (former custom.yaml at README.md)
- rework README.md as per above
- use some YAML power to share distros' commonality
- add fedora support
* create unique /etc/machine-id and other updates
- create unique /etc/machine-id in each docker node,
used as seed for e.g. weave mac addresses
- with above, now netchecker 100% passes WoHooOO!
:tada: :tada: :tada:
- updated README.md output from (1.12.1, verified
netcheck)
* minor typos
* fix centos node creation, needs earlier udevadm removal to avoid flaky facts, also verified netcheck Ok \o/
* add Q&D test-distros.sh, back to manual /etc/machine-id hack
* run-test-distros.sh cosmetics and minor fixes
* run-test-distros.sh: $rc fix and minor formatting changes
* run-test-distros.sh output cosmetics
2018-10-15 15:44:02 +08:00
|
|
|
user:
|
|
|
|
name: "{{ distro_user }}"
|
|
|
|
uid: 1000
|
2019-04-01 17:38:33 +08:00
|
|
|
# groups: sudo
|
[jjo] add DIND support to contrib/ (#3468)
* [jjo] add DIND support to contrib/
- add contrib/dind with ansible playbook to
create "node" containers, and setup them to mimic
host nodes as much as possible (using Ubuntu images),
see contrib/dind/README.md
- nodes' /etc/hosts editing via `blockinfile` and
`lineinfile` need `unsafe_writes: yes` because /etc/hosts
are mounted by docker, and thus can't be handled atomically
(modify copy + rename)
* dind-host role: set node container hostname on creation
* add "Resulting deployment" section with some CLI outputs
* typo
* selectable node_distro: debian, ubuntu
* some fixes for node_distro: ubuntu
* cpu optimization: add early `pkill -STOP agetty`
* typo
* add centos dind support ;)
* add kubespray-dind.yaml, support fedora
- add kubespray-dind.yaml (former custom.yaml at README.md)
- rework README.md as per above
- use some YAML power to share distros' commonality
- add fedora support
* create unique /etc/machine-id and other updates
- create unique /etc/machine-id in each docker node,
used as seed for e.g. weave mac addresses
- with above, now netchecker 100% passes WoHooOO!
:tada: :tada: :tada:
- updated README.md output from (1.12.1, verified
netcheck)
* minor typos
* fix centos node creation, needs earlier udevadm removal to avoid flaky facts, also verified netcheck Ok \o/
* add Q&D test-distros.sh, back to manual /etc/machine-id hack
* run-test-distros.sh cosmetics and minor fixes
* run-test-distros.sh: $rc fix and minor formatting changes
* run-test-distros.sh output cosmetics
2018-10-15 15:44:02 +08:00
|
|
|
append: yes
|
|
|
|
|
|
|
|
- name: Allow password-less sudo to "{{ distro_user }}"
|
|
|
|
copy:
|
|
|
|
content: "{{ distro_user }} ALL=(ALL) NOPASSWD:ALL"
|
|
|
|
dest: "/etc/sudoers.d/{{ distro_user }}"
|
2021-07-12 15:00:47 +08:00
|
|
|
mode: 0640
|
[jjo] add DIND support to contrib/ (#3468)
* [jjo] add DIND support to contrib/
- add contrib/dind with ansible playbook to
create "node" containers, and setup them to mimic
host nodes as much as possible (using Ubuntu images),
see contrib/dind/README.md
- nodes' /etc/hosts editing via `blockinfile` and
`lineinfile` need `unsafe_writes: yes` because /etc/hosts
are mounted by docker, and thus can't be handled atomically
(modify copy + rename)
* dind-host role: set node container hostname on creation
* add "Resulting deployment" section with some CLI outputs
* typo
* selectable node_distro: debian, ubuntu
* some fixes for node_distro: ubuntu
* cpu optimization: add early `pkill -STOP agetty`
* typo
* add centos dind support ;)
* add kubespray-dind.yaml, support fedora
- add kubespray-dind.yaml (former custom.yaml at README.md)
- rework README.md as per above
- use some YAML power to share distros' commonality
- add fedora support
* create unique /etc/machine-id and other updates
- create unique /etc/machine-id in each docker node,
used as seed for e.g. weave mac addresses
- with above, now netchecker 100% passes WoHooOO!
:tada: :tada: :tada:
- updated README.md output from (1.12.1, verified
netcheck)
* minor typos
* fix centos node creation, needs earlier udevadm removal to avoid flaky facts, also verified netcheck Ok \o/
* add Q&D test-distros.sh, back to manual /etc/machine-id hack
* run-test-distros.sh cosmetics and minor fixes
* run-test-distros.sh: $rc fix and minor formatting changes
* run-test-distros.sh output cosmetics
2018-10-15 15:44:02 +08:00
|
|
|
|
|
|
|
- name: Add my pubkey to "{{ distro_user }}" user authorized keys
|
|
|
|
authorized_key:
|
|
|
|
user: "{{ distro_user }}"
|
|
|
|
state: present
|
|
|
|
key: "{{ lookup('file', lookup('env','HOME') + '/.ssh/id_rsa.pub') }}"
|