First implementation
This commit is contained in:
parent
3c23a1b8b0
commit
f552ec5209
151
.gitignore
vendored
Normal file
151
.gitignore
vendored
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
# Created by .ignore support plugin (hsz.mobi)
|
||||||
|
### JetBrains template
|
||||||
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
|
||||||
|
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||||
|
|
||||||
|
# User-specific stuff
|
||||||
|
.idea/**/workspace.xml
|
||||||
|
.idea/**/tasks.xml
|
||||||
|
.idea/**/usage.statistics.xml
|
||||||
|
.idea/**/dictionaries
|
||||||
|
.idea/**/shelf
|
||||||
|
|
||||||
|
# Generated files
|
||||||
|
.idea/**/contentModel.xml
|
||||||
|
|
||||||
|
# Sensitive or high-churn files
|
||||||
|
.idea/**/dataSources/
|
||||||
|
.idea/**/dataSources.ids
|
||||||
|
.idea/**/dataSources.local.xml
|
||||||
|
.idea/**/sqlDataSources.xml
|
||||||
|
.idea/**/dynamic.xml
|
||||||
|
.idea/**/uiDesigner.xml
|
||||||
|
.idea/**/dbnavigator.xml
|
||||||
|
|
||||||
|
# Gradle
|
||||||
|
.idea/**/gradle.xml
|
||||||
|
.idea/**/libraries
|
||||||
|
|
||||||
|
# Gradle and Maven with auto-import
|
||||||
|
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||||
|
# since they will be recreated, and may cause churn. Uncomment if using
|
||||||
|
# auto-import.
|
||||||
|
# .idea/artifacts
|
||||||
|
# .idea/compiler.xml
|
||||||
|
# .idea/modules.xml
|
||||||
|
# .idea/*.iml
|
||||||
|
# .idea/modules
|
||||||
|
# *.iml
|
||||||
|
# *.ipr
|
||||||
|
|
||||||
|
# CMake
|
||||||
|
cmake-build-*/
|
||||||
|
|
||||||
|
# Mongo Explorer plugin
|
||||||
|
.idea/**/mongoSettings.xml
|
||||||
|
|
||||||
|
# File-based project format
|
||||||
|
*.iws
|
||||||
|
|
||||||
|
# IntelliJ
|
||||||
|
out/
|
||||||
|
|
||||||
|
# mpeltonen/sbt-idea plugin
|
||||||
|
.idea_modules/
|
||||||
|
|
||||||
|
# JIRA plugin
|
||||||
|
atlassian-ide-plugin.xml
|
||||||
|
|
||||||
|
# Cursive Clojure plugin
|
||||||
|
.idea/replstate.xml
|
||||||
|
|
||||||
|
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||||
|
com_crashlytics_export_strings.xml
|
||||||
|
crashlytics.properties
|
||||||
|
crashlytics-build.properties
|
||||||
|
fabric.properties
|
||||||
|
|
||||||
|
# Editor-based Rest Client
|
||||||
|
.idea/httpRequests
|
||||||
|
|
||||||
|
# Android studio 3.1+ serialized cache file
|
||||||
|
.idea/caches/build_file_checksums.ser
|
||||||
|
|
||||||
|
### Vim template
|
||||||
|
# Swap
|
||||||
|
[._]*.s[a-v][a-z]
|
||||||
|
!*.svg # comment out if you don't need vector files
|
||||||
|
[._]*.sw[a-p]
|
||||||
|
[._]s[a-rt-v][a-z]
|
||||||
|
[._]ss[a-gi-z]
|
||||||
|
[._]sw[a-p]
|
||||||
|
|
||||||
|
# Session
|
||||||
|
Session.vim
|
||||||
|
Sessionx.vim
|
||||||
|
|
||||||
|
# Temporary
|
||||||
|
.netrwhist
|
||||||
|
*~
|
||||||
|
# Auto-generated tag files
|
||||||
|
tags
|
||||||
|
# Persistent undo
|
||||||
|
[._]*.un~
|
||||||
|
|
||||||
|
### Windows template
|
||||||
|
# Windows thumbnail cache files
|
||||||
|
Thumbs.db
|
||||||
|
Thumbs.db:encryptable
|
||||||
|
ehthumbs.db
|
||||||
|
ehthumbs_vista.db
|
||||||
|
|
||||||
|
# Dump file
|
||||||
|
*.stackdump
|
||||||
|
|
||||||
|
# Folder config file
|
||||||
|
[Dd]esktop.ini
|
||||||
|
|
||||||
|
# Recycle Bin used on file shares
|
||||||
|
$RECYCLE.BIN/
|
||||||
|
|
||||||
|
# Windows Installer files
|
||||||
|
*.cab
|
||||||
|
*.msi
|
||||||
|
*.msix
|
||||||
|
*.msm
|
||||||
|
*.msp
|
||||||
|
|
||||||
|
# Windows shortcuts
|
||||||
|
*.lnk
|
||||||
|
|
||||||
|
### macOS template
|
||||||
|
# General
|
||||||
|
.DS_Store
|
||||||
|
.AppleDouble
|
||||||
|
.LSOverride
|
||||||
|
|
||||||
|
# Icon must end with two \r
|
||||||
|
Icon
|
||||||
|
|
||||||
|
# Thumbnails
|
||||||
|
._*
|
||||||
|
|
||||||
|
# Files that might appear in the root of a volume
|
||||||
|
.DocumentRevisions-V100
|
||||||
|
.fseventsd
|
||||||
|
.Spotlight-V100
|
||||||
|
.TemporaryItems
|
||||||
|
.Trashes
|
||||||
|
.VolumeIcon.icns
|
||||||
|
.com.apple.timemachine.donotpresent
|
||||||
|
|
||||||
|
# Directories potentially created on remote AFP share
|
||||||
|
.AppleDB
|
||||||
|
.AppleDesktop
|
||||||
|
Network Trash Folder
|
||||||
|
Temporary Items
|
||||||
|
.apdisk
|
||||||
|
|
||||||
|
!/bootstrap/.secret
|
||||||
|
Supprimerait ansible/roles/docker/templates/
|
||||||
|
Supprimerait bootstrap/
|
201
LICENSE
Normal file
201
LICENSE
Normal file
@ -0,0 +1,201 @@
|
|||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
25
README.md
Normal file
25
README.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# robocar-setup
|
||||||
|
|
||||||
|
Tools to init and boot robocar stack on raspberrypi boards.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Bootstrap sdcard
|
||||||
|
|
||||||
|
* add your ssh public key in `authorized_keys` file
|
||||||
|
* to configure wifi, add `.secret` file with content:
|
||||||
|
```bash
|
||||||
|
WIFI_SSID="ssid"
|
||||||
|
WIFI_PASSWORD="password"
|
||||||
|
```
|
||||||
|
* uncomment and fix `SD_CARD_*` variables in `build_sdcard.sh`
|
||||||
|
* insert sdcard and run `build_sdcard.sh`
|
||||||
|
|
||||||
|
|
||||||
|
## Configure raspberry and install stack
|
||||||
|
|
||||||
|
Install ansible on local host and run:
|
||||||
|
```bash
|
||||||
|
cd ansible
|
||||||
|
ansible-playbook -i hosts site.yml
|
||||||
|
```
|
8
ansible/group_vars/all/rabbitmq_credentials.yaml
Normal file
8
ansible/group_vars/all/rabbitmq_credentials.yaml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
62663835343566613663623336313161646363633064623663303132373038633038356138636139
|
||||||
|
6636616636653236633030383635373037373630653664350a353134356661613137336633336630
|
||||||
|
66393130656530333335616465346437363835313036653166326635333234356438633733313738
|
||||||
|
3536633935663730360a656133663436376239646631346466393037613432343339373836373263
|
||||||
|
30333861653837643663333234366561313062326437326366633733626230396634663738633034
|
||||||
|
32666533666234663639383733393466636164393531663534343963663863343237303931666466
|
||||||
|
333639333234373231613130346562326665
|
9
ansible/hosts
Normal file
9
ansible/hosts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[car]
|
||||||
|
satanas.local ansible_user=pi become=yes become_user=root
|
||||||
|
diabolo.local ansible_user=pi become=yes become_user=root
|
||||||
|
|
||||||
|
[microservice]
|
||||||
|
diabolo.local
|
||||||
|
|
||||||
|
[donkey]
|
||||||
|
satanas.local
|
1
ansible/roles/base/files/10-vchiq-permissions.rules
Normal file
1
ansible/roles/base/files/10-vchiq-permissions.rules
Normal file
@ -0,0 +1 @@
|
|||||||
|
SUBSYSTEM=="vchiq", GROUP="video", MODE="0660"
|
2
ansible/roles/base/files/authorized_keys
Normal file
2
ansible/roles/base/files/authorized_keys
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzGhjQj0Ods7dlErUOQuF1x3ODZpIrHxWdpay7jaV4Crr5jcr2xayyjRpjlBNrkGCWuTm0Wmjiqnl6VAvJqzHEsXTRcB0fhbS6qX7aC+uzzEbZNZNSVl2WrFpeAx7qREcEPy+rhW4ijdixMN85uv8hJo17/AcMbH3OtnMPvVQ+DvjE1v5GawwlEk45eqhnhOJKoieiPgyTFol5KKYX56KMC8BvvKW6KcYHON+66Pe4rS5JE3qAQytEhM51S2iycfjvWGuXoz9RJfo/qNYIoMaCcEVWXNBQmY0D02q4W8Wfl3LZJWE1/X26xf0NGGQk1ofReM3Ktb68HTHXjpOyr6wLQ== cynoffic@cyrilix.fr
|
||||||
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCctxtMaU+L9g/goud+2kNUVfvW0RIHFmgKyFqdjixqsdo8haglLjKqFLEeX0h7O95sreKOzrys+8GIsDT0mZbUWmaazrFoX1iaqO9SiaykQyZI2tFZVm2N/SXok6JoxJYt5IovyIxeeJchhCIjc+rKUwwYqPuDKdNMMHSX6jZC3AGvmVzu5xpMx5tD50pNnnUhLQAg+OBaflInpWwDwNSvFFa12JP12/qDLVXkM4fP8Ky9xgywlhqYTb3cfVDwigU41yDD9Kgp0+V73AqJkdrFvscP+lMY0WFyPlARRnCoc9QAITr++GKNkWc4gQGa4KC9x7gLCalDaSpiYyJadd1P cyrille.nofficial@renault-digital.com
|
9
ansible/roles/base/handlers/main.yml
Normal file
9
ansible/roles/base/handlers/main.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
- name: expand filesystem
|
||||||
|
shell: resize2fs /dev/mmcblk0p2
|
||||||
|
notify:
|
||||||
|
- reboot
|
||||||
|
|
||||||
|
- name: reboot
|
||||||
|
reboot:
|
||||||
|
|
42
ansible/roles/base/tasks/hardware.yml
Normal file
42
ansible/roles/base/tasks/hardware.yml
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Deploy raspberry config
|
||||||
|
template:
|
||||||
|
src: config.txt
|
||||||
|
dest: /boot/config.txt
|
||||||
|
notify: reboot
|
||||||
|
|
||||||
|
- name: Set pi user in groups
|
||||||
|
user:
|
||||||
|
name: pi
|
||||||
|
groups: tty,dialout
|
||||||
|
|
||||||
|
#- name: Disable console
|
||||||
|
# replace:
|
||||||
|
# path: /boot/cmdline.txt
|
||||||
|
# regexp: '(.*) console=[^ ]+(\s+.*)?$'
|
||||||
|
# replace: '\1\2'
|
||||||
|
# notify: reboot
|
||||||
|
|
||||||
|
#- name: Disable tty use
|
||||||
|
# systemd:
|
||||||
|
# name: getty@tty1.service
|
||||||
|
# masked: yes
|
||||||
|
# enabled: no
|
||||||
|
# daemon_reload: yes
|
||||||
|
# notify: reboot
|
||||||
|
|
||||||
|
|
||||||
|
- name: Set group on camera device
|
||||||
|
copy:
|
||||||
|
src: 10-vchiq-permissions.rules
|
||||||
|
dest: /etc/udev/rules.d/10-vchiq-permissions.rules
|
||||||
|
notify: reboot
|
||||||
|
|
||||||
|
|
||||||
|
- name: Set groups to pi user
|
||||||
|
user:
|
||||||
|
name: pi
|
||||||
|
groups: tty,video
|
||||||
|
|
||||||
|
- meta: flush_handlers
|
67
ansible/roles/base/tasks/main.yml
Normal file
67
ansible/roles/base/tasks/main.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
---
|
||||||
|
- name: Set default language to FR
|
||||||
|
template:
|
||||||
|
src: locale
|
||||||
|
dest: /etc/default/locale
|
||||||
|
|
||||||
|
- name: Set locales
|
||||||
|
template:
|
||||||
|
src: locale.gen
|
||||||
|
dest: /etc/locale.gen
|
||||||
|
register: locale
|
||||||
|
|
||||||
|
- name: Generate locales
|
||||||
|
shell: dpkg-reconfigure -f noninteractive locales
|
||||||
|
when: locale.changed
|
||||||
|
|
||||||
|
- name: Set timezone
|
||||||
|
timezone:
|
||||||
|
name: Europe/Paris
|
||||||
|
|
||||||
|
|
||||||
|
- name: Set hostname resolution
|
||||||
|
replace:
|
||||||
|
path: /etc/hosts
|
||||||
|
regexp: '(\s+)raspberrypi(\s+.*)?$'
|
||||||
|
replace: '\1{{ ansible_hostname }}\2'
|
||||||
|
|
||||||
|
- name: Install basic tools
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- cpufrequtils
|
||||||
|
- vim
|
||||||
|
- git
|
||||||
|
- python3
|
||||||
|
- python3-pip
|
||||||
|
- python-apt
|
||||||
|
state: present
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: Copy ssh authorized keys file
|
||||||
|
copy:
|
||||||
|
src: authorized_keys
|
||||||
|
dest: /home/pi/.ssh/authorized_keys
|
||||||
|
owner: pi
|
||||||
|
group: pi
|
||||||
|
mode: 0600
|
||||||
|
|
||||||
|
- name: Files configuration
|
||||||
|
template:
|
||||||
|
src: "{{ item.src }}"
|
||||||
|
dest: "{{ item.dest }}"
|
||||||
|
owner: pi
|
||||||
|
group: pi
|
||||||
|
with_items:
|
||||||
|
- src: vimrc
|
||||||
|
dest: /home/pi/.vimrc
|
||||||
|
- src: alias
|
||||||
|
dest: /home/pi/.alias
|
||||||
|
- src: bashrc
|
||||||
|
dest: /home/pi/.bashrc
|
||||||
|
- src: gitconfig
|
||||||
|
dest: /home/pi/.gitconfig
|
||||||
|
|
||||||
|
|
||||||
|
- include_tasks: hardware.yml
|
||||||
|
|
||||||
|
|
53
ansible/roles/base/templates/alias
Normal file
53
ansible/roles/base/templates/alias
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
|
||||||
|
# Gestion du ls : couleur + touche pas aux accents
|
||||||
|
alias ls='ls --classify --tabsize=0 --literal --color=auto --show-control-chars --human-readable'
|
||||||
|
alias lc='ls --classify --tabsize=0 --literal --color=always --show-control-chars --human-readable'
|
||||||
|
|
||||||
|
# Demande confirmation avant d'écraser un fichier
|
||||||
|
alias cp='cp --interactive'
|
||||||
|
alias mv='mv --interactive'
|
||||||
|
#alias rm='rm --interactive'
|
||||||
|
|
||||||
|
# Raccourcis pour 'ls'
|
||||||
|
alias ll='ls -lh'
|
||||||
|
alias llc='ls -lh --color=always'
|
||||||
|
alias la='ls -a'
|
||||||
|
alias lac='ls -a --color=always'
|
||||||
|
alias lla='ls -lha'
|
||||||
|
alias llac='ls -lha --color=always'
|
||||||
|
|
||||||
|
# Quelques alias pratiques
|
||||||
|
alias c='clear'
|
||||||
|
alias s='cd ..'
|
||||||
|
alias df='df --human-readable'
|
||||||
|
alias du='du --human-readable'
|
||||||
|
alias grec='egrep --color=always'
|
||||||
|
|
||||||
|
#APT
|
||||||
|
alias apts='aptitude search'
|
||||||
|
alias aptn='aptitude search \~N'
|
||||||
|
alias aptsh='apt show'
|
||||||
|
alias apti='apt install'
|
||||||
|
alias aptp='apt purge'
|
||||||
|
alias aptr='apt remove'
|
||||||
|
alias aptfug='apt full-upgrade'
|
||||||
|
alias aptug='apt upgrade'
|
||||||
|
alias aptu='apt update'
|
||||||
|
alias aptlu='apt list --upgradable'
|
||||||
|
alias aptf='aptitude forget-new'
|
||||||
|
|
||||||
|
alias sshr="ssh -X root@`hostname --short`.local"
|
||||||
|
|
||||||
|
alias free='free -h'
|
||||||
|
|
||||||
|
alias diff=colordiff
|
||||||
|
alias gh="git history"
|
||||||
|
|
||||||
|
alias v=view
|
||||||
|
|
||||||
|
if [ -f ~/.alias_custom ]
|
||||||
|
then
|
||||||
|
source ~/.alias_custom
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
128
ansible/roles/base/templates/bashrc
Normal file
128
ansible/roles/base/templates/bashrc
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||||
|
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
||||||
|
# for examples
|
||||||
|
|
||||||
|
# If not running interactively, don't do anything
|
||||||
|
case $- in
|
||||||
|
*i*) ;;
|
||||||
|
*) return;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# don't put duplicate lines or lines starting with space in the history.
|
||||||
|
# See bash(1) for more options
|
||||||
|
HISTCONTROL=ignoreboth
|
||||||
|
|
||||||
|
# append to the history file, don't overwrite it
|
||||||
|
shopt -s histappend
|
||||||
|
|
||||||
|
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
||||||
|
HISTSIZE=1000
|
||||||
|
HISTFILESIZE=2000
|
||||||
|
|
||||||
|
# check the window size after each command and, if necessary,
|
||||||
|
# update the values of LINES and COLUMNS.
|
||||||
|
shopt -s checkwinsize
|
||||||
|
|
||||||
|
# If set, the pattern "**" used in a pathname expansion context will
|
||||||
|
# match all files and zero or more directories and subdirectories.
|
||||||
|
#shopt -s globstar
|
||||||
|
|
||||||
|
# make less more friendly for non-text input files, see lesspipe(1)
|
||||||
|
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||||||
|
|
||||||
|
# set variable identifying the chroot you work in (used in the prompt below)
|
||||||
|
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
|
||||||
|
debian_chroot=$(cat /etc/debian_chroot)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# set a fancy prompt (non-color, unless we know we "want" color)
|
||||||
|
case "$TERM" in
|
||||||
|
xterm-color|*-256color) color_prompt=yes;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# uncomment for a colored prompt, if the terminal has the capability; turned
|
||||||
|
# off by default to not distract the user: the focus in a terminal window
|
||||||
|
# should be on the output of commands, not on the prompt
|
||||||
|
force_color_prompt=yes
|
||||||
|
|
||||||
|
if [ -n "$force_color_prompt" ]; then
|
||||||
|
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||||
|
# We have color support; assume it's compliant with Ecma-48
|
||||||
|
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
||||||
|
# a case would tend to support setf rather than setaf.)
|
||||||
|
color_prompt=yes
|
||||||
|
else
|
||||||
|
color_prompt=
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
parse_git_branch() {
|
||||||
|
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
|
||||||
|
}
|
||||||
|
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]$(parse_git_branch)\[\033[00m\] $ "
|
||||||
|
if [ "$color_prompt" = yes ]; then
|
||||||
|
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w $(parse_git_branch) \$\[\033[00m\] '
|
||||||
|
else
|
||||||
|
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$(parse_git_branch)\$ '
|
||||||
|
fi
|
||||||
|
unset color_prompt force_color_prompt
|
||||||
|
|
||||||
|
# If this is an xterm set the title to user@host:dir
|
||||||
|
case "$TERM" in
|
||||||
|
xterm*|rxvt*)
|
||||||
|
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# enable color support of ls and also add handy aliases
|
||||||
|
if [ -x /usr/bin/dircolors ]; then
|
||||||
|
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||||
|
alias ls='ls --color=auto'
|
||||||
|
#alias dir='dir --color=auto'
|
||||||
|
#alias vdir='vdir --color=auto'
|
||||||
|
|
||||||
|
alias grep='grep --color=auto'
|
||||||
|
alias fgrep='fgrep --color=auto'
|
||||||
|
alias egrep='egrep --color=auto'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# colored GCC warnings and errors
|
||||||
|
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
|
||||||
|
|
||||||
|
# some more ls aliases
|
||||||
|
#alias ll='ls -l'
|
||||||
|
#alias la='ls -A'
|
||||||
|
#alias l='ls -CF'
|
||||||
|
|
||||||
|
# Alias definitions.
|
||||||
|
# You may want to put all your additions into a separate file like
|
||||||
|
# ~/.bash_aliases, instead of adding them here directly.
|
||||||
|
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
|
||||||
|
|
||||||
|
if [ -f ~/.bash_aliases ]; then
|
||||||
|
. ~/.bash_aliases
|
||||||
|
fi
|
||||||
|
|
||||||
|
# enable programmable completion features (you don't need to enable
|
||||||
|
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
||||||
|
# sources /etc/bash.bashrc).
|
||||||
|
if ! shopt -oq posix; then
|
||||||
|
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
||||||
|
. /usr/share/bash-completion/bash_completion
|
||||||
|
elif [ -f /etc/bash_completion ]; then
|
||||||
|
. /etc/bash_completion
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [[ -f ~/.alias ]]
|
||||||
|
then
|
||||||
|
source ~/.alias
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -f ~/.bash_custom ]]
|
||||||
|
then
|
||||||
|
source ~/.bash_custom
|
||||||
|
fi
|
76
ansible/roles/base/templates/config.txt
Executable file
76
ansible/roles/base/templates/config.txt
Executable file
@ -0,0 +1,76 @@
|
|||||||
|
# For more options and information see
|
||||||
|
# http://rpf.io/configtxt
|
||||||
|
# Some settings may impact device functionality. See link above for details
|
||||||
|
|
||||||
|
# uncomment if you get no picture on HDMI for a default "safe" mode
|
||||||
|
#hdmi_safe=1
|
||||||
|
|
||||||
|
# uncomment this if your display has a black border of unused pixels visible
|
||||||
|
# and your display can output without overscan
|
||||||
|
#disable_overscan=1
|
||||||
|
|
||||||
|
# uncomment the following to adjust overscan. Use positive numbers if console
|
||||||
|
# goes off screen, and negative if there is too much border
|
||||||
|
#overscan_left=16
|
||||||
|
#overscan_right=16
|
||||||
|
#overscan_top=16
|
||||||
|
#overscan_bottom=16
|
||||||
|
|
||||||
|
# uncomment to force a console size. By default it will be display's size minus
|
||||||
|
# overscan.
|
||||||
|
#framebuffer_width=1280
|
||||||
|
#framebuffer_height=720
|
||||||
|
|
||||||
|
# uncomment if hdmi display is not detected and composite is being output
|
||||||
|
#hdmi_force_hotplug=1
|
||||||
|
|
||||||
|
# uncomment to force a specific HDMI mode (this will force VGA)
|
||||||
|
#hdmi_group=1
|
||||||
|
#hdmi_mode=1
|
||||||
|
|
||||||
|
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
|
||||||
|
# DMT (computer monitor) modes
|
||||||
|
#hdmi_drive=2
|
||||||
|
|
||||||
|
# uncomment to increase signal to HDMI, if you have interference, blanking, or
|
||||||
|
# no display
|
||||||
|
#config_hdmi_boost=4
|
||||||
|
|
||||||
|
# uncomment for composite PAL
|
||||||
|
#sdtv_mode=2
|
||||||
|
|
||||||
|
#uncomment to overclock the arm. 700 MHz is the default.
|
||||||
|
#arm_freq=800
|
||||||
|
|
||||||
|
# Uncomment some or all of these to enable the optional hardware interfaces
|
||||||
|
dtparam=i2c_arm=on
|
||||||
|
dtparam=i2s=on
|
||||||
|
dtparam=spi=on
|
||||||
|
|
||||||
|
# Uncomment this to enable infrared communication.
|
||||||
|
#dtoverlay=gpio-ir,gpio_pin=17
|
||||||
|
#dtoverlay=gpio-ir-tx,gpio_pin=18
|
||||||
|
|
||||||
|
# Uncomment this to enable the lirc-rpi module
|
||||||
|
#dtoverlay=lirc-rpi
|
||||||
|
|
||||||
|
# Additional overlays and parameters are documented /boot/overlays/README
|
||||||
|
|
||||||
|
# Enable audio (loads snd_bcm2835)
|
||||||
|
dtparam=audio=on
|
||||||
|
|
||||||
|
[pi4]
|
||||||
|
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
|
||||||
|
dtoverlay=vc4-fkms-v3d
|
||||||
|
max_framebuffers=2
|
||||||
|
dtoverlay=uart2
|
||||||
|
|
||||||
|
[all]
|
||||||
|
#dtoverlay=vc4-fkms-v3d
|
||||||
|
# Disable bluetooth in order to enable serial TTL
|
||||||
|
dtoverlay=pi3-disable-bt
|
||||||
|
|
||||||
|
|
||||||
|
# Enable camera
|
||||||
|
start_x=1
|
||||||
|
gpu_mem=256
|
27
ansible/roles/base/templates/gitconfig
Normal file
27
ansible/roles/base/templates/gitconfig
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
[color]
|
||||||
|
branch = auto
|
||||||
|
diff = auto
|
||||||
|
interactive = auto
|
||||||
|
status = auto
|
||||||
|
ui = auto
|
||||||
|
|
||||||
|
[i18n]
|
||||||
|
commitEncoding = UTF-8
|
||||||
|
logOutputEncoding = UTF-8
|
||||||
|
|
||||||
|
[alias]
|
||||||
|
co = checkout
|
||||||
|
history = log --all --graph --abbrev-commit --pretty=format:'%C(auto)%h [%ad] %d %s %C(reset) - %aN' --date=short
|
||||||
|
h = log --all --graph --abbrev-commit --pretty=format:'%C(auto)%h [%ad] %d %s %C(reset) - %aN' --date=short
|
||||||
|
|
||||||
|
[mergetool]
|
||||||
|
prompt = false
|
||||||
|
keepBackup = false
|
||||||
|
keepTemporaries = false
|
||||||
|
|
||||||
|
[pull]
|
||||||
|
rebase = true
|
||||||
|
|
||||||
|
[push]
|
||||||
|
default = simple
|
||||||
|
|
2
ansible/roles/base/templates/locale
Normal file
2
ansible/roles/base/templates/locale
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# {{ ansible_managed }}
|
||||||
|
LANG=fr_FR.UTF-8
|
483
ansible/roles/base/templates/locale.gen
Normal file
483
ansible/roles/base/templates/locale.gen
Normal file
@ -0,0 +1,483 @@
|
|||||||
|
# This file lists locales that you wish to have built. You can find a list
|
||||||
|
# of valid supported locales at /usr/share/i18n/SUPPORTED, and you can add
|
||||||
|
# user defined locales to /usr/local/share/i18n/SUPPORTED. If you change
|
||||||
|
# this file, you need to rerun locale-gen.
|
||||||
|
#
|
||||||
|
|
||||||
|
# aa_DJ ISO-8859-1
|
||||||
|
# aa_DJ.UTF-8 UTF-8
|
||||||
|
# aa_ER UTF-8
|
||||||
|
# aa_ER@saaho UTF-8
|
||||||
|
# aa_ET UTF-8
|
||||||
|
# af_ZA ISO-8859-1
|
||||||
|
# af_ZA.UTF-8 UTF-8
|
||||||
|
# ak_GH UTF-8
|
||||||
|
# am_ET UTF-8
|
||||||
|
# an_ES ISO-8859-15
|
||||||
|
# an_ES.UTF-8 UTF-8
|
||||||
|
# anp_IN UTF-8
|
||||||
|
# ar_AE ISO-8859-6
|
||||||
|
# ar_AE.UTF-8 UTF-8
|
||||||
|
# ar_BH ISO-8859-6
|
||||||
|
# ar_BH.UTF-8 UTF-8
|
||||||
|
# ar_DZ ISO-8859-6
|
||||||
|
# ar_DZ.UTF-8 UTF-8
|
||||||
|
# ar_EG ISO-8859-6
|
||||||
|
# ar_EG.UTF-8 UTF-8
|
||||||
|
# ar_IN UTF-8
|
||||||
|
# ar_IQ ISO-8859-6
|
||||||
|
# ar_IQ.UTF-8 UTF-8
|
||||||
|
# ar_JO ISO-8859-6
|
||||||
|
# ar_JO.UTF-8 UTF-8
|
||||||
|
# ar_KW ISO-8859-6
|
||||||
|
# ar_KW.UTF-8 UTF-8
|
||||||
|
# ar_LB ISO-8859-6
|
||||||
|
# ar_LB.UTF-8 UTF-8
|
||||||
|
# ar_LY ISO-8859-6
|
||||||
|
# ar_LY.UTF-8 UTF-8
|
||||||
|
# ar_MA ISO-8859-6
|
||||||
|
# ar_MA.UTF-8 UTF-8
|
||||||
|
# ar_OM ISO-8859-6
|
||||||
|
# ar_OM.UTF-8 UTF-8
|
||||||
|
# ar_QA ISO-8859-6
|
||||||
|
# ar_QA.UTF-8 UTF-8
|
||||||
|
# ar_SA ISO-8859-6
|
||||||
|
# ar_SA.UTF-8 UTF-8
|
||||||
|
# ar_SD ISO-8859-6
|
||||||
|
# ar_SD.UTF-8 UTF-8
|
||||||
|
# ar_SS UTF-8
|
||||||
|
# ar_SY ISO-8859-6
|
||||||
|
# ar_SY.UTF-8 UTF-8
|
||||||
|
# ar_TN ISO-8859-6
|
||||||
|
# ar_TN.UTF-8 UTF-8
|
||||||
|
# ar_YE ISO-8859-6
|
||||||
|
# ar_YE.UTF-8 UTF-8
|
||||||
|
# as_IN UTF-8
|
||||||
|
# ast_ES ISO-8859-15
|
||||||
|
# ast_ES.UTF-8 UTF-8
|
||||||
|
# ayc_PE UTF-8
|
||||||
|
# az_AZ UTF-8
|
||||||
|
# be_BY CP1251
|
||||||
|
# be_BY.UTF-8 UTF-8
|
||||||
|
# be_BY@latin UTF-8
|
||||||
|
# bem_ZM UTF-8
|
||||||
|
# ber_DZ UTF-8
|
||||||
|
# ber_MA UTF-8
|
||||||
|
# bg_BG CP1251
|
||||||
|
# bg_BG.UTF-8 UTF-8
|
||||||
|
# bhb_IN.UTF-8 UTF-8
|
||||||
|
# bho_IN UTF-8
|
||||||
|
# bn_BD UTF-8
|
||||||
|
# bn_IN UTF-8
|
||||||
|
# bo_CN UTF-8
|
||||||
|
# bo_IN UTF-8
|
||||||
|
# br_FR ISO-8859-1
|
||||||
|
# br_FR.UTF-8 UTF-8
|
||||||
|
# br_FR@euro ISO-8859-15
|
||||||
|
# brx_IN UTF-8
|
||||||
|
# bs_BA ISO-8859-2
|
||||||
|
# bs_BA.UTF-8 UTF-8
|
||||||
|
# byn_ER UTF-8
|
||||||
|
# ca_AD ISO-8859-15
|
||||||
|
# ca_AD.UTF-8 UTF-8
|
||||||
|
# ca_ES ISO-8859-1
|
||||||
|
# ca_ES.UTF-8 UTF-8
|
||||||
|
# ca_ES.UTF-8@valencia UTF-8
|
||||||
|
# ca_ES@euro ISO-8859-15
|
||||||
|
# ca_ES@valencia ISO-8859-15
|
||||||
|
# ca_FR ISO-8859-15
|
||||||
|
# ca_FR.UTF-8 UTF-8
|
||||||
|
# ca_IT ISO-8859-15
|
||||||
|
# ca_IT.UTF-8 UTF-8
|
||||||
|
# ce_RU UTF-8
|
||||||
|
# chr_US UTF-8
|
||||||
|
# cmn_TW UTF-8
|
||||||
|
# crh_UA UTF-8
|
||||||
|
# cs_CZ ISO-8859-2
|
||||||
|
# cs_CZ.UTF-8 UTF-8
|
||||||
|
# csb_PL UTF-8
|
||||||
|
# cv_RU UTF-8
|
||||||
|
# cy_GB ISO-8859-14
|
||||||
|
# cy_GB.UTF-8 UTF-8
|
||||||
|
# da_DK ISO-8859-1
|
||||||
|
# da_DK.UTF-8 UTF-8
|
||||||
|
# de_AT ISO-8859-1
|
||||||
|
# de_AT.UTF-8 UTF-8
|
||||||
|
# de_AT@euro ISO-8859-15
|
||||||
|
# de_BE ISO-8859-1
|
||||||
|
# de_BE.UTF-8 UTF-8
|
||||||
|
# de_BE@euro ISO-8859-15
|
||||||
|
# de_CH ISO-8859-1
|
||||||
|
# de_CH.UTF-8 UTF-8
|
||||||
|
# de_DE ISO-8859-1
|
||||||
|
# de_DE.UTF-8 UTF-8
|
||||||
|
# de_DE@euro ISO-8859-15
|
||||||
|
# de_IT ISO-8859-1
|
||||||
|
# de_IT.UTF-8 UTF-8
|
||||||
|
# de_LI.UTF-8 UTF-8
|
||||||
|
# de_LU ISO-8859-1
|
||||||
|
# de_LU.UTF-8 UTF-8
|
||||||
|
# de_LU@euro ISO-8859-15
|
||||||
|
# doi_IN UTF-8
|
||||||
|
# dv_MV UTF-8
|
||||||
|
# dz_BT UTF-8
|
||||||
|
# el_CY ISO-8859-7
|
||||||
|
# el_CY.UTF-8 UTF-8
|
||||||
|
# el_GR ISO-8859-7
|
||||||
|
# el_GR.UTF-8 UTF-8
|
||||||
|
# en_AG UTF-8
|
||||||
|
# en_AU ISO-8859-1
|
||||||
|
# en_AU.UTF-8 UTF-8
|
||||||
|
# en_BW ISO-8859-1
|
||||||
|
# en_BW.UTF-8 UTF-8
|
||||||
|
# en_CA ISO-8859-1
|
||||||
|
# en_CA.UTF-8 UTF-8
|
||||||
|
# en_DK ISO-8859-1
|
||||||
|
# en_DK.ISO-8859-15 ISO-8859-15
|
||||||
|
# en_DK.UTF-8 UTF-8
|
||||||
|
# en_GB ISO-8859-1
|
||||||
|
# en_GB.ISO-8859-15 ISO-8859-15
|
||||||
|
en_GB.UTF-8 UTF-8
|
||||||
|
# en_HK ISO-8859-1
|
||||||
|
# en_HK.UTF-8 UTF-8
|
||||||
|
# en_IE ISO-8859-1
|
||||||
|
# en_IE.UTF-8 UTF-8
|
||||||
|
# en_IE@euro ISO-8859-15
|
||||||
|
# en_IL UTF-8
|
||||||
|
# en_IN UTF-8
|
||||||
|
# en_NG UTF-8
|
||||||
|
# en_NZ ISO-8859-1
|
||||||
|
# en_NZ.UTF-8 UTF-8
|
||||||
|
# en_PH ISO-8859-1
|
||||||
|
# en_PH.UTF-8 UTF-8
|
||||||
|
# en_SG ISO-8859-1
|
||||||
|
# en_SG.UTF-8 UTF-8
|
||||||
|
# en_US ISO-8859-1
|
||||||
|
# en_US.ISO-8859-15 ISO-8859-15
|
||||||
|
# en_US.UTF-8 UTF-8
|
||||||
|
# en_ZA ISO-8859-1
|
||||||
|
# en_ZA.UTF-8 UTF-8
|
||||||
|
# en_ZM UTF-8
|
||||||
|
# en_ZW ISO-8859-1
|
||||||
|
# en_ZW.UTF-8 UTF-8
|
||||||
|
# eo UTF-8
|
||||||
|
# es_AR ISO-8859-1
|
||||||
|
# es_AR.UTF-8 UTF-8
|
||||||
|
# es_BO ISO-8859-1
|
||||||
|
# es_BO.UTF-8 UTF-8
|
||||||
|
# es_CL ISO-8859-1
|
||||||
|
# es_CL.UTF-8 UTF-8
|
||||||
|
# es_CO ISO-8859-1
|
||||||
|
# es_CO.UTF-8 UTF-8
|
||||||
|
# es_CR ISO-8859-1
|
||||||
|
# es_CR.UTF-8 UTF-8
|
||||||
|
# es_CU UTF-8
|
||||||
|
# es_DO ISO-8859-1
|
||||||
|
# es_DO.UTF-8 UTF-8
|
||||||
|
# es_EC ISO-8859-1
|
||||||
|
# es_EC.UTF-8 UTF-8
|
||||||
|
# es_ES ISO-8859-1
|
||||||
|
# es_ES.UTF-8 UTF-8
|
||||||
|
# es_ES@euro ISO-8859-15
|
||||||
|
# es_GT ISO-8859-1
|
||||||
|
# es_GT.UTF-8 UTF-8
|
||||||
|
# es_HN ISO-8859-1
|
||||||
|
# es_HN.UTF-8 UTF-8
|
||||||
|
# es_MX ISO-8859-1
|
||||||
|
# es_MX.UTF-8 UTF-8
|
||||||
|
# es_NI ISO-8859-1
|
||||||
|
# es_NI.UTF-8 UTF-8
|
||||||
|
# es_PA ISO-8859-1
|
||||||
|
# es_PA.UTF-8 UTF-8
|
||||||
|
# es_PE ISO-8859-1
|
||||||
|
# es_PE.UTF-8 UTF-8
|
||||||
|
# es_PR ISO-8859-1
|
||||||
|
# es_PR.UTF-8 UTF-8
|
||||||
|
# es_PY ISO-8859-1
|
||||||
|
# es_PY.UTF-8 UTF-8
|
||||||
|
# es_SV ISO-8859-1
|
||||||
|
# es_SV.UTF-8 UTF-8
|
||||||
|
# es_US ISO-8859-1
|
||||||
|
# es_US.UTF-8 UTF-8
|
||||||
|
# es_UY ISO-8859-1
|
||||||
|
# es_UY.UTF-8 UTF-8
|
||||||
|
# es_VE ISO-8859-1
|
||||||
|
# es_VE.UTF-8 UTF-8
|
||||||
|
# et_EE ISO-8859-1
|
||||||
|
# et_EE.ISO-8859-15 ISO-8859-15
|
||||||
|
# et_EE.UTF-8 UTF-8
|
||||||
|
# eu_ES ISO-8859-1
|
||||||
|
# eu_ES.UTF-8 UTF-8
|
||||||
|
# eu_ES@euro ISO-8859-15
|
||||||
|
# eu_FR ISO-8859-1
|
||||||
|
# eu_FR.UTF-8 UTF-8
|
||||||
|
# eu_FR@euro ISO-8859-15
|
||||||
|
# fa_IR UTF-8
|
||||||
|
# ff_SN UTF-8
|
||||||
|
# fi_FI ISO-8859-1
|
||||||
|
# fi_FI.UTF-8 UTF-8
|
||||||
|
# fi_FI@euro ISO-8859-15
|
||||||
|
# fil_PH UTF-8
|
||||||
|
# fo_FO ISO-8859-1
|
||||||
|
# fo_FO.UTF-8 UTF-8
|
||||||
|
# fr_BE ISO-8859-1
|
||||||
|
# fr_BE.UTF-8 UTF-8
|
||||||
|
# fr_BE@euro ISO-8859-15
|
||||||
|
# fr_CA ISO-8859-1
|
||||||
|
# fr_CA.UTF-8 UTF-8
|
||||||
|
# fr_CH ISO-8859-1
|
||||||
|
# fr_CH.UTF-8 UTF-8
|
||||||
|
# fr_FR ISO-8859-1
|
||||||
|
fr_FR.UTF-8 UTF-8
|
||||||
|
# fr_FR@euro ISO-8859-15
|
||||||
|
# fr_LU ISO-8859-1
|
||||||
|
# fr_LU.UTF-8 UTF-8
|
||||||
|
# fr_LU@euro ISO-8859-15
|
||||||
|
# fur_IT UTF-8
|
||||||
|
# fy_DE UTF-8
|
||||||
|
# fy_NL UTF-8
|
||||||
|
# ga_IE ISO-8859-1
|
||||||
|
# ga_IE.UTF-8 UTF-8
|
||||||
|
# ga_IE@euro ISO-8859-15
|
||||||
|
# gd_GB ISO-8859-15
|
||||||
|
# gd_GB.UTF-8 UTF-8
|
||||||
|
# gez_ER UTF-8
|
||||||
|
# gez_ER@abegede UTF-8
|
||||||
|
# gez_ET UTF-8
|
||||||
|
# gez_ET@abegede UTF-8
|
||||||
|
# gl_ES ISO-8859-1
|
||||||
|
# gl_ES.UTF-8 UTF-8
|
||||||
|
# gl_ES@euro ISO-8859-15
|
||||||
|
# gu_IN UTF-8
|
||||||
|
# gv_GB ISO-8859-1
|
||||||
|
# gv_GB.UTF-8 UTF-8
|
||||||
|
# ha_NG UTF-8
|
||||||
|
# hak_TW UTF-8
|
||||||
|
# he_IL ISO-8859-8
|
||||||
|
# he_IL.UTF-8 UTF-8
|
||||||
|
# hi_IN UTF-8
|
||||||
|
# hne_IN UTF-8
|
||||||
|
# hr_HR ISO-8859-2
|
||||||
|
# hr_HR.UTF-8 UTF-8
|
||||||
|
# hsb_DE ISO-8859-2
|
||||||
|
# hsb_DE.UTF-8 UTF-8
|
||||||
|
# ht_HT UTF-8
|
||||||
|
# hu_HU ISO-8859-2
|
||||||
|
# hu_HU.UTF-8 UTF-8
|
||||||
|
# hy_AM UTF-8
|
||||||
|
# hy_AM.ARMSCII-8 ARMSCII-8
|
||||||
|
# ia_FR UTF-8
|
||||||
|
# id_ID ISO-8859-1
|
||||||
|
# id_ID.UTF-8 UTF-8
|
||||||
|
# ig_NG UTF-8
|
||||||
|
# ik_CA UTF-8
|
||||||
|
# is_IS ISO-8859-1
|
||||||
|
# is_IS.UTF-8 UTF-8
|
||||||
|
# it_CH ISO-8859-1
|
||||||
|
# it_CH.UTF-8 UTF-8
|
||||||
|
# it_IT ISO-8859-1
|
||||||
|
# it_IT.UTF-8 UTF-8
|
||||||
|
# it_IT@euro ISO-8859-15
|
||||||
|
# iu_CA UTF-8
|
||||||
|
# ja_JP.EUC-JP EUC-JP
|
||||||
|
# ja_JP.UTF-8 UTF-8
|
||||||
|
# ka_GE GEORGIAN-PS
|
||||||
|
# ka_GE.UTF-8 UTF-8
|
||||||
|
# kk_KZ PT154
|
||||||
|
# kk_KZ.RK1048 RK1048
|
||||||
|
# kk_KZ.UTF-8 UTF-8
|
||||||
|
# kl_GL ISO-8859-1
|
||||||
|
# kl_GL.UTF-8 UTF-8
|
||||||
|
# km_KH UTF-8
|
||||||
|
# kn_IN UTF-8
|
||||||
|
# ko_KR.EUC-KR EUC-KR
|
||||||
|
# ko_KR.UTF-8 UTF-8
|
||||||
|
# kok_IN UTF-8
|
||||||
|
# ks_IN UTF-8
|
||||||
|
# ks_IN@devanagari UTF-8
|
||||||
|
# ku_TR ISO-8859-9
|
||||||
|
# ku_TR.UTF-8 UTF-8
|
||||||
|
# kw_GB ISO-8859-1
|
||||||
|
# kw_GB.UTF-8 UTF-8
|
||||||
|
# ky_KG UTF-8
|
||||||
|
# lb_LU UTF-8
|
||||||
|
# lg_UG ISO-8859-10
|
||||||
|
# lg_UG.UTF-8 UTF-8
|
||||||
|
# li_BE UTF-8
|
||||||
|
# li_NL UTF-8
|
||||||
|
# lij_IT UTF-8
|
||||||
|
# ln_CD UTF-8
|
||||||
|
# lo_LA UTF-8
|
||||||
|
# lt_LT ISO-8859-13
|
||||||
|
# lt_LT.UTF-8 UTF-8
|
||||||
|
# lv_LV ISO-8859-13
|
||||||
|
# lv_LV.UTF-8 UTF-8
|
||||||
|
# lzh_TW UTF-8
|
||||||
|
# mag_IN UTF-8
|
||||||
|
# mai_IN UTF-8
|
||||||
|
# mg_MG ISO-8859-15
|
||||||
|
# mg_MG.UTF-8 UTF-8
|
||||||
|
# mhr_RU UTF-8
|
||||||
|
# mi_NZ ISO-8859-13
|
||||||
|
# mi_NZ.UTF-8 UTF-8
|
||||||
|
# mk_MK ISO-8859-5
|
||||||
|
# mk_MK.UTF-8 UTF-8
|
||||||
|
# ml_IN UTF-8
|
||||||
|
# mn_MN UTF-8
|
||||||
|
# mni_IN UTF-8
|
||||||
|
# mr_IN UTF-8
|
||||||
|
# ms_MY ISO-8859-1
|
||||||
|
# ms_MY.UTF-8 UTF-8
|
||||||
|
# mt_MT ISO-8859-3
|
||||||
|
# mt_MT.UTF-8 UTF-8
|
||||||
|
# my_MM UTF-8
|
||||||
|
# nan_TW UTF-8
|
||||||
|
# nan_TW@latin UTF-8
|
||||||
|
# nb_NO ISO-8859-1
|
||||||
|
# nb_NO.UTF-8 UTF-8
|
||||||
|
# nds_DE UTF-8
|
||||||
|
# nds_NL UTF-8
|
||||||
|
# ne_NP UTF-8
|
||||||
|
# nhn_MX UTF-8
|
||||||
|
# niu_NU UTF-8
|
||||||
|
# niu_NZ UTF-8
|
||||||
|
# nl_AW UTF-8
|
||||||
|
# nl_BE ISO-8859-1
|
||||||
|
# nl_BE.UTF-8 UTF-8
|
||||||
|
# nl_BE@euro ISO-8859-15
|
||||||
|
# nl_NL ISO-8859-1
|
||||||
|
# nl_NL.UTF-8 UTF-8
|
||||||
|
# nl_NL@euro ISO-8859-15
|
||||||
|
# nn_NO ISO-8859-1
|
||||||
|
# nn_NO.UTF-8 UTF-8
|
||||||
|
# nr_ZA UTF-8
|
||||||
|
# nso_ZA UTF-8
|
||||||
|
# oc_FR ISO-8859-1
|
||||||
|
# oc_FR.UTF-8 UTF-8
|
||||||
|
# om_ET UTF-8
|
||||||
|
# om_KE ISO-8859-1
|
||||||
|
# om_KE.UTF-8 UTF-8
|
||||||
|
# or_IN UTF-8
|
||||||
|
# os_RU UTF-8
|
||||||
|
# pa_IN UTF-8
|
||||||
|
# pa_PK UTF-8
|
||||||
|
# pap_AW UTF-8
|
||||||
|
# pap_CW UTF-8
|
||||||
|
# pl_PL ISO-8859-2
|
||||||
|
# pl_PL.UTF-8 UTF-8
|
||||||
|
# ps_AF UTF-8
|
||||||
|
# pt_BR ISO-8859-1
|
||||||
|
# pt_BR.UTF-8 UTF-8
|
||||||
|
# pt_PT ISO-8859-1
|
||||||
|
# pt_PT.UTF-8 UTF-8
|
||||||
|
# pt_PT@euro ISO-8859-15
|
||||||
|
# quz_PE UTF-8
|
||||||
|
# raj_IN UTF-8
|
||||||
|
# ro_RO ISO-8859-2
|
||||||
|
# ro_RO.UTF-8 UTF-8
|
||||||
|
# ru_RU ISO-8859-5
|
||||||
|
# ru_RU.CP1251 CP1251
|
||||||
|
# ru_RU.KOI8-R KOI8-R
|
||||||
|
# ru_RU.UTF-8 UTF-8
|
||||||
|
# ru_UA KOI8-U
|
||||||
|
# ru_UA.UTF-8 UTF-8
|
||||||
|
# rw_RW UTF-8
|
||||||
|
# sa_IN UTF-8
|
||||||
|
# sat_IN UTF-8
|
||||||
|
# sc_IT UTF-8
|
||||||
|
# sd_IN UTF-8
|
||||||
|
# sd_IN@devanagari UTF-8
|
||||||
|
# se_NO UTF-8
|
||||||
|
# sgs_LT UTF-8
|
||||||
|
# shs_CA UTF-8
|
||||||
|
# si_LK UTF-8
|
||||||
|
# sid_ET UTF-8
|
||||||
|
# sk_SK ISO-8859-2
|
||||||
|
# sk_SK.UTF-8 UTF-8
|
||||||
|
# sl_SI ISO-8859-2
|
||||||
|
# sl_SI.UTF-8 UTF-8
|
||||||
|
# so_DJ ISO-8859-1
|
||||||
|
# so_DJ.UTF-8 UTF-8
|
||||||
|
# so_ET UTF-8
|
||||||
|
# so_KE ISO-8859-1
|
||||||
|
# so_KE.UTF-8 UTF-8
|
||||||
|
# so_SO ISO-8859-1
|
||||||
|
# so_SO.UTF-8 UTF-8
|
||||||
|
# sq_AL ISO-8859-1
|
||||||
|
# sq_AL.UTF-8 UTF-8
|
||||||
|
# sq_MK UTF-8
|
||||||
|
# sr_ME UTF-8
|
||||||
|
# sr_RS UTF-8
|
||||||
|
# sr_RS@latin UTF-8
|
||||||
|
# ss_ZA UTF-8
|
||||||
|
# st_ZA ISO-8859-1
|
||||||
|
# st_ZA.UTF-8 UTF-8
|
||||||
|
# sv_FI ISO-8859-1
|
||||||
|
# sv_FI.UTF-8 UTF-8
|
||||||
|
# sv_FI@euro ISO-8859-15
|
||||||
|
# sv_SE ISO-8859-1
|
||||||
|
# sv_SE.ISO-8859-15 ISO-8859-15
|
||||||
|
# sv_SE.UTF-8 UTF-8
|
||||||
|
# sw_KE UTF-8
|
||||||
|
# sw_TZ UTF-8
|
||||||
|
# szl_PL UTF-8
|
||||||
|
# ta_IN UTF-8
|
||||||
|
# ta_LK UTF-8
|
||||||
|
# tcy_IN.UTF-8 UTF-8
|
||||||
|
# te_IN UTF-8
|
||||||
|
# tg_TJ KOI8-T
|
||||||
|
# tg_TJ.UTF-8 UTF-8
|
||||||
|
# th_TH TIS-620
|
||||||
|
# th_TH.UTF-8 UTF-8
|
||||||
|
# the_NP UTF-8
|
||||||
|
# ti_ER UTF-8
|
||||||
|
# ti_ET UTF-8
|
||||||
|
# tig_ER UTF-8
|
||||||
|
# tk_TM UTF-8
|
||||||
|
# tl_PH ISO-8859-1
|
||||||
|
# tl_PH.UTF-8 UTF-8
|
||||||
|
# tn_ZA UTF-8
|
||||||
|
# tr_CY ISO-8859-9
|
||||||
|
# tr_CY.UTF-8 UTF-8
|
||||||
|
# tr_TR ISO-8859-9
|
||||||
|
# tr_TR.UTF-8 UTF-8
|
||||||
|
# ts_ZA UTF-8
|
||||||
|
# tt_RU UTF-8
|
||||||
|
# tt_RU@iqtelif UTF-8
|
||||||
|
# ug_CN UTF-8
|
||||||
|
# uk_UA KOI8-U
|
||||||
|
# uk_UA.UTF-8 UTF-8
|
||||||
|
# unm_US UTF-8
|
||||||
|
# ur_IN UTF-8
|
||||||
|
# ur_PK UTF-8
|
||||||
|
# uz_UZ ISO-8859-1
|
||||||
|
# uz_UZ.UTF-8 UTF-8
|
||||||
|
# uz_UZ@cyrillic UTF-8
|
||||||
|
# ve_ZA UTF-8
|
||||||
|
# vi_VN UTF-8
|
||||||
|
# wa_BE ISO-8859-1
|
||||||
|
# wa_BE.UTF-8 UTF-8
|
||||||
|
# wa_BE@euro ISO-8859-15
|
||||||
|
# wae_CH UTF-8
|
||||||
|
# wal_ET UTF-8
|
||||||
|
# wo_SN UTF-8
|
||||||
|
# xh_ZA ISO-8859-1
|
||||||
|
# xh_ZA.UTF-8 UTF-8
|
||||||
|
# yi_US CP1255
|
||||||
|
# yi_US.UTF-8 UTF-8
|
||||||
|
# yo_NG UTF-8
|
||||||
|
# yue_HK UTF-8
|
||||||
|
# zh_CN GB2312
|
||||||
|
# zh_CN.GB18030 GB18030
|
||||||
|
# zh_CN.GBK GBK
|
||||||
|
# zh_CN.UTF-8 UTF-8
|
||||||
|
# zh_HK BIG5-HKSCS
|
||||||
|
# zh_HK.UTF-8 UTF-8
|
||||||
|
# zh_SG GB2312
|
||||||
|
# zh_SG.GBK GBK
|
||||||
|
# zh_SG.UTF-8 UTF-8
|
||||||
|
# zh_TW BIG5
|
||||||
|
# zh_TW.EUC-TW EUC-TW
|
||||||
|
# zh_TW.UTF-8 UTF-8
|
||||||
|
# zu_ZA ISO-8859-1
|
||||||
|
# zu_ZA.UTF-8 UTF-8
|
31
ansible/roles/base/templates/vimrc
Normal file
31
ansible/roles/base/templates/vimrc
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
" Vim5 and later versions support syntax highlighting. Uncommenting the next
|
||||||
|
" line enables syntax highlighting by default.
|
||||||
|
syntax on
|
||||||
|
|
||||||
|
" If using a dark background within the editing area and syntax highlighting
|
||||||
|
" turn on this option as well
|
||||||
|
set background=dark
|
||||||
|
colorscheme desert
|
||||||
|
|
||||||
|
"" Numérotation des lignes
|
||||||
|
set nu
|
||||||
|
|
||||||
|
" Uncomment the following to have Vim load indentation rules and plugins
|
||||||
|
" according to the detected filetype.
|
||||||
|
if has("autocmd")
|
||||||
|
filetype plugin indent on
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Source a global configuration file if available
|
||||||
|
if filereadable("/etc/vim/vimrc.local")
|
||||||
|
source /etc/vim/vimrc.local
|
||||||
|
endif
|
||||||
|
|
||||||
|
" formattage auto du xml
|
||||||
|
au FileType xml setlocal equalprg="XMLLINT_INDENT=4 xmllint\ --format\ --recover\ -\ 2>/dev/null"
|
||||||
|
|
||||||
|
" remplacement des tabulations par des espaces
|
||||||
|
set expandtab
|
||||||
|
set tabstop=4
|
||||||
|
" To change the number of space characters inserted for indentation, use the 'shiftwidth' option:
|
||||||
|
set shiftwidth=4
|
35
ansible/roles/docker/tasks/docker.yml
Normal file
35
ansible/roles/docker/tasks/docker.yml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
- name: Add apt key
|
||||||
|
apt_key:
|
||||||
|
url: https://download.docker.com/linux/debian/gpg
|
||||||
|
|
||||||
|
- name: Add docker-ce repository
|
||||||
|
apt_repository:
|
||||||
|
repo: deb [arch={{ arch | default('armhf') }}] https://download.docker.com/linux/debian {{ ansible_distribution_release }} stable
|
||||||
|
state: present
|
||||||
|
filename: 'docker'
|
||||||
|
|
||||||
|
|
||||||
|
- meta: flush_handlers
|
||||||
|
|
||||||
|
- name: Install docker-ce
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- python-pip
|
||||||
|
- docker-ce
|
||||||
|
- xfsprogs
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Set groups to pi user
|
||||||
|
user:
|
||||||
|
name: pi
|
||||||
|
groups: docker
|
||||||
|
|
||||||
|
- meta: flush_handlers
|
||||||
|
- name: Install ansible tool docker and docker-compose
|
||||||
|
pip:
|
||||||
|
name:
|
||||||
|
- docker-compose
|
||||||
|
executable: pip3
|
||||||
|
|
||||||
|
|
||||||
|
|
4
ansible/roles/docker/tasks/main.yml
Normal file
4
ansible/roles/docker/tasks/main.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- include_tasks: docker.yml
|
||||||
|
|
13
ansible/roles/donkey/defaults/main.yml
Normal file
13
ansible/roles/donkey/defaults/main.yml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
donkey_username: pi
|
||||||
|
donkey_groupname: pi
|
||||||
|
donkey_home_dir: /home/{{ donkey_username }}
|
||||||
|
|
||||||
|
donkey_git_repo: https://github.com/cyrilix/donkey.git
|
||||||
|
donkey_git_branch: master
|
||||||
|
|
||||||
|
donkey_sources: "{{ donkey_home_dir }}/donkeycar"
|
||||||
|
donkey_virtualenv_dir: "{{ donkey_home_dir }}/venv"
|
||||||
|
|
||||||
|
donkey_data_dir: "{{ donkey_home_dir }}/data"
|
16
ansible/roles/donkey/tasks/data.yml
Normal file
16
ansible/roles/donkey/tasks/data.yml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Make data directory
|
||||||
|
file:
|
||||||
|
path: "{{ donkey_data_dir }}"
|
||||||
|
owner: "{{ donkey_username }}"
|
||||||
|
group: "{{ donkey_groupname }}"
|
||||||
|
state: directory
|
||||||
|
|
||||||
|
- name: Make tmpfs
|
||||||
|
mount:
|
||||||
|
path: "{{ donkey_data_dir }}"
|
||||||
|
src: tmpfs
|
||||||
|
fstype: tmpfs
|
||||||
|
opts: defaults
|
||||||
|
state: mounted
|
62
ansible/roles/donkey/tasks/main.yml
Normal file
62
ansible/roles/donkey/tasks/main.yml
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- include_tasks: data.yml
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- python3-setuptools-git
|
||||||
|
- virtualenv
|
||||||
|
- libopenjp2-7
|
||||||
|
- libtiff5
|
||||||
|
- libblas3
|
||||||
|
- liblapack3
|
||||||
|
- libatlas3-base
|
||||||
|
- libjpeg-dev
|
||||||
|
- libilmbase12
|
||||||
|
- libopenexr22
|
||||||
|
- libgstreamer1.0-0
|
||||||
|
- libavcodec57
|
||||||
|
- libavformat57
|
||||||
|
- libswscale4
|
||||||
|
- libgtk-3-0
|
||||||
|
- i2c-tools
|
||||||
|
- read-edid
|
||||||
|
- libsdl1.2debian
|
||||||
|
- libjasper1
|
||||||
|
- libqtgui4
|
||||||
|
- libqt4-test
|
||||||
|
- python-h5py
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Fetch git repository
|
||||||
|
become_user: "{{ donkey_username }}"
|
||||||
|
git:
|
||||||
|
repo: "{{ donkey_git_repo }}"
|
||||||
|
dest: "{{ donkey_sources }}"
|
||||||
|
version: "{{ donkey_git_branch }}"
|
||||||
|
ssh_opts: "-o StrictHostKeyChecking=no"
|
||||||
|
|
||||||
|
- name: Install donkey
|
||||||
|
become_user: "{{ donkey_username }}"
|
||||||
|
pip:
|
||||||
|
name: "{{ donkey_sources }}"
|
||||||
|
virtualenv_python: python3
|
||||||
|
virtualenv: "{{ donkey_virtualenv_dir }}"
|
||||||
|
editable: yes
|
||||||
|
|
||||||
|
|
||||||
|
#- name: Install dependencies
|
||||||
|
# become_user: "{{ donkey_username }}"
|
||||||
|
# pip:
|
||||||
|
# requirements: "{{ donkey_sources }}/requirements-pi.txt"
|
||||||
|
# virtualenv: "{{ donkey_virtualenv_dir }}"
|
||||||
|
# virtualenv_python: python3
|
||||||
|
|
||||||
|
- name: Load virtualenv at connection
|
||||||
|
template:
|
||||||
|
src: bash_custom
|
||||||
|
dest: "{{ donkey_home_dir }}/.bash_custom"
|
||||||
|
owner: "{{ donkey_username }}"
|
||||||
|
group: "{{ donkey_groupname }}"
|
||||||
|
mode: 0644
|
2
ansible/roles/donkey/templates/bash_custom
Normal file
2
ansible/roles/donkey/templates/bash_custom
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Activate virtualenv
|
||||||
|
source {{ donkey_virtualenv_dir }}/bin/activate
|
4
ansible/roles/python/defaults/main.yml
Normal file
4
ansible/roles/python/defaults/main.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
version: 3.6.6
|
||||||
|
threads: 4
|
52
ansible/roles/python/tasks/main.yml
Normal file
52
ansible/roles/python/tasks/main.yml
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: "Install python {{version}} runtime & build dependencies"
|
||||||
|
become: yes
|
||||||
|
apt: name={{item}}
|
||||||
|
with_items:
|
||||||
|
- build-essential
|
||||||
|
- tk-dev
|
||||||
|
- libncurses5-dev
|
||||||
|
- libncursesw5-dev
|
||||||
|
- libreadline6-dev
|
||||||
|
- libdb5.3-dev
|
||||||
|
- libgdbm-dev
|
||||||
|
- libsqlite3-dev
|
||||||
|
- libssl-dev
|
||||||
|
- libbz2-dev
|
||||||
|
- libexpat1-dev
|
||||||
|
- liblzma-dev
|
||||||
|
- libffi-dev
|
||||||
|
- uuid-dev
|
||||||
|
- zlib1g-dev
|
||||||
|
|
||||||
|
- name: "Download python{{version}}"
|
||||||
|
get_url:
|
||||||
|
url: "https://www.python.org/ftp/python/{{version}}/Python-{{version}}.tar.xz"
|
||||||
|
dest: "/tmp/Python-{{version}}.tar.xz"
|
||||||
|
|
||||||
|
- name: "Unarchive python{{version}}"
|
||||||
|
unarchive:
|
||||||
|
src: "/tmp/Python-{{version}}.tar.xz"
|
||||||
|
dest: "/tmp/"
|
||||||
|
copy: no
|
||||||
|
creates: "/tmp/Python-{{version}}"
|
||||||
|
|
||||||
|
- name: "configure python{{version}} build"
|
||||||
|
command: ./configure --prefix=/opt/python-{{version}} --enable-optimizations
|
||||||
|
args:
|
||||||
|
chdir: "/tmp/Python-{{version}}"
|
||||||
|
creates: "/tmp/Python-{{version}}/Makefile"
|
||||||
|
|
||||||
|
- name: "build python{{version}}"
|
||||||
|
# not using make module to be able to use -j and creates option to fully skip step
|
||||||
|
command: make -j{{threads}}
|
||||||
|
args:
|
||||||
|
chdir: "/tmp/Python-{{version}}"
|
||||||
|
creates: "/tmp/Python-{{version}}/python"
|
||||||
|
|
||||||
|
- name: "install python{{version}}"
|
||||||
|
become: yes
|
||||||
|
make:
|
||||||
|
chdir: "/tmp/Python-{{version}}"
|
||||||
|
target: altinstall
|
11
ansible/roles/rabbitmq/handlers/main.yml
Normal file
11
ansible/roles/rabbitmq/handlers/main.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
- name: expand filesystem
|
||||||
|
shell: resize2fs /dev/mmcblk0p2
|
||||||
|
notify:
|
||||||
|
- reboot
|
||||||
|
|
||||||
|
- name: restart rabbitmq
|
||||||
|
service:
|
||||||
|
name: rabbitmq-server
|
||||||
|
start: restarted
|
||||||
|
|
32
ansible/roles/rabbitmq/tasks/main.yml
Normal file
32
ansible/roles/rabbitmq/tasks/main.yml
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
- name: Install ansible dependencies
|
||||||
|
apt:
|
||||||
|
name: "python-requests"
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Install rabbitmq package
|
||||||
|
apt:
|
||||||
|
name: rabbitmq-server
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Enables rabbitmq plugins
|
||||||
|
rabbitmq_plugin:
|
||||||
|
names: rabbitmq_management,rabbitmq_mqtt
|
||||||
|
state: enabled
|
||||||
|
|
||||||
|
- name: Add rabbitmq user
|
||||||
|
rabbitmq_user:
|
||||||
|
user: "{{ rabbitmq_user }}"
|
||||||
|
password: "{{ rabbitmq_password }}"
|
||||||
|
vhost: /
|
||||||
|
configure_priv: .*
|
||||||
|
read_priv: .*
|
||||||
|
write_priv: .*
|
||||||
|
tags: administrator
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create exchange
|
||||||
|
rabbitmq_exchange:
|
||||||
|
name: car
|
||||||
|
type: topic
|
||||||
|
vhost: "/"
|
18
ansible/site.yml
Normal file
18
ansible/site.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- hosts: car
|
||||||
|
become: yes
|
||||||
|
roles:
|
||||||
|
- { role: base, tags: [base]}
|
||||||
|
|
||||||
|
- hosts: microservice
|
||||||
|
become: yes
|
||||||
|
roles:
|
||||||
|
- { role: rabbitmq, tags: [rabbitmq] }
|
||||||
|
- { role: docker, tags: [docker] }
|
||||||
|
|
||||||
|
- hosts: donkey
|
||||||
|
become: yes
|
||||||
|
roles:
|
||||||
|
- { role: python, tags: [python]}
|
||||||
|
- { role: donkey, tags: [donkey] }
|
83
bootstrap/build_sdcard.sh
Executable file
83
bootstrap/build_sdcard.sh
Executable file
@ -0,0 +1,83 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Uncomment and fix variables before run script
|
||||||
|
SD_CARD_DEVICE="/dev/sda"
|
||||||
|
SD_CARD_BOOT_PARTITION=${SD_CARD_DEVICE}1
|
||||||
|
SD_CARD_ROOT_PARTITION=${SD_CARD_DEVICE}2
|
||||||
|
|
||||||
|
HOSTNAME_CAR="satanas"
|
||||||
|
|
||||||
|
WIFI_SECRET_FILE=".secret"
|
||||||
|
|
||||||
|
# For debug
|
||||||
|
ADD_TTL_SUPPORT_FOR_DEBUG=1
|
||||||
|
|
||||||
|
########### End Configuration ############
|
||||||
|
mkdir -p build
|
||||||
|
|
||||||
|
if [ ! -f build/raspbian.zip ]
|
||||||
|
then
|
||||||
|
wget -O build/raspbian.zip https://downloads.raspberrypi.org/raspbian_lite_latest
|
||||||
|
cd build
|
||||||
|
unzip raspbian.zip
|
||||||
|
cd ..
|
||||||
|
fi
|
||||||
|
|
||||||
|
raspbian_image=`ls build/*.img`
|
||||||
|
|
||||||
|
echo "Copy image ${raspbian_image} to sdcard"
|
||||||
|
sudo dd if=${raspbian_image} of=${SD_CARD_DEVICE} bs=4M conv=fsync status=progress
|
||||||
|
|
||||||
|
echo "Force disk sync"
|
||||||
|
sync
|
||||||
|
|
||||||
|
|
||||||
|
echo "Mount boot sdcard"
|
||||||
|
mkdir -p build/mnt
|
||||||
|
sudo mount ${SD_CARD_BOOT_PARTITION} ./build/mnt
|
||||||
|
|
||||||
|
echo "Force ssh to start at first boot"
|
||||||
|
sudo touch build/mnt/ssh
|
||||||
|
|
||||||
|
if [ "${ADD_TTL_SUPPORT_FOR_DEBUG}" == "1" ]
|
||||||
|
then
|
||||||
|
echo "# Disable bluetooth in order to enable serial TTL" | sudo tee -a build/mnt/config.txt > /dev/null
|
||||||
|
echo "dtoverlay=pi3-disable-bt" | sudo tee -a build/mnt/config.txt > /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Umount boot partition"
|
||||||
|
sudo umount build/mnt
|
||||||
|
|
||||||
|
|
||||||
|
echo "Mount root sdcard"
|
||||||
|
sudo mount ${SD_CARD_ROOT_PARTITION} ./build/mnt
|
||||||
|
|
||||||
|
echo "Set hostname"
|
||||||
|
echo ${HOSTNAME_CAR} | sudo tee build/mnt/etc/hostname > /dev/null
|
||||||
|
echo sudo sed -i "s/raspberrypi/$HOSTNAME_CAR/g" build/mnt/etc/hosts
|
||||||
|
|
||||||
|
echo "Disable default password for 'pi' use"
|
||||||
|
sudo sed -i -E "s/(pi:)[^:]*(:.*)/\1*\2/" build/mnt/etc/shadow*
|
||||||
|
|
||||||
|
echo "Copy authorized keys"
|
||||||
|
sudo mkdir -p build/mnt/home/pi/.ssh/
|
||||||
|
sudo cp ../ansible/roles/base/files/authorized_keys build/mnt/home/pi/.ssh/
|
||||||
|
sudo chmod 600 build/mnt/home/pi/.ssh/authorized_keys
|
||||||
|
sudo chown -R 1000:1000 build/mnt/home/pi
|
||||||
|
|
||||||
|
echo "Copy wifi configuration"
|
||||||
|
source ${WIFI_SECRET_FILE}
|
||||||
|
eval "echo \"$(cat wpa_supplicant.conf)\"" | sudo tee build/mnt/etc/wpa_supplicant/wpa_supplicant.conf > /dev/null
|
||||||
|
sudo chmod 600 build/mnt/etc/wpa_supplicant/wpa_supplicant.conf
|
||||||
|
|
||||||
|
|
||||||
|
echo "Umount sdcard"
|
||||||
|
sudo umount ./build/mnt
|
||||||
|
|
||||||
|
echo "Force disk sync"
|
||||||
|
sync
|
||||||
|
|
||||||
|
echo "Bootstrap finished, plug sdcard on raspberrypi and connect with command:"
|
||||||
|
echo " ssh pi@${HOSTNAME_CAR}.local"
|
||||||
|
|
9
bootstrap/wpa_supplicant.conf
Normal file
9
bootstrap/wpa_supplicant.conf
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
|
||||||
|
update_config=1
|
||||||
|
country=FR
|
||||||
|
|
||||||
|
network={
|
||||||
|
ssid=\"${WIFI_SSID}\"
|
||||||
|
psk=\"${WIFI_PASSWORD}\"
|
||||||
|
priority=2
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user