【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
广告
将在 10 秒后关闭
bannerAds