【OCI】使用Ansible进行docker环境的构建
Ansible 是什么?
Ansible是一种构成管理工具。
它被设计为保证幂等性,
并描述了管理目标服务器的“期望状态”。
Ansible的定义文件
concept役割inventoryインフラとスタック(グループ)の対応づけを記述するplaybookスタックをロール(role)の組み合わせとして記述するroleロールの設定(ミドルウェアとか)をtaskの組み合わせとして記述する
预备工作
我会从GitHub克隆存储库。
Github: oci-ansible-template
$ git clone https://github.com/manaki-naoe/oci-ansible-template.git
形成
-
- inventory
production
group_vars
all.yml.default
hosts.default
staging
group_vars
all.yml.default
hosts.default
playbooks
admin-servers.yml
firstrun.yml
web-servers.yml
roles
common
handlers
tasks
firewall.yml # SELinux無効化、firewallの無効化を行う
japanese.yml # ロケール、タイムゾーンの確認変更を行う
main.yml # 各ymlの呼び出しを行う
volume.yml # インスタンスの作成時にカスタム・ブート・ボリュームサイズを変更してもボリュームサイズは拡張されないので拡張を行う。
yum.yml # 共通するパッケージのインストールを行う。
templates
docker
handlers
main.yml
tasks
main.yml
templates
docker-ce.repo.j2
vars
main.yml
ansible.cfg
setup.sh
site.yml
编辑库存
生产/主机
将hosts.default复制为hosts
adminserver ansible_ssh_host=内部IPアドレスを記入
webserver1 ansible_ssh_host=内部IPアドレスを記入
[all:vars]
ansible_ssh_private_key_file=~/.ssh/***.pem
ansible_ssh_user=work
[admin-servers]
adminserver
[web-servers]
webserver1
所有的生产/群组变量文件.yml
将all.yml.default复制为all.yml。
work_user: "work"
work_user_password: "お好きなパスワード"
安装ansible
执行位于项目根目录下的setup.sh文件。
# sh setup.sh
使用Ansible来执行
执行firstrun Playbook
进行语言环境设置,创建用户的指南。
# ansible-playbook -i inventory/production/hosts playbooks/firstrun.yml
public key path::/root/.ssh/***.pub #パブリックキーを入力します。
#~~~
#省略
#~~~
PLAY RECAP *************************************************************************************************************************adminserver : ok=7 changed=6 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
执行site.yml
这控制着在整个系统中使用哪个Playbook。
# ansible-playbook -i inventory/production/hosts site.yml
PLAY RECAP *************************************************************************************************************************adminserver : ok=16 changed=8 unreachable=0 failed=0 skipped=2 rescued=0 ignored=1
确认 (què
可以确认已安装了Docker。
# docker --version
Docker version 19.03.2, build 6a30dfc