16.Ansibleロール
16.1.AnsibleRolesの紹介
16.2.ディレクトリ構造の作成
16.3.AnsibleRolesの依存関係
17.その他参考資料
17.1.Playbook参考資料
17.2.Ansible事実
17.3.時の判断文
17.4.with_items
17.5.ansible jinjaテンプレート
17.6.ansibleロール役割
17.7. 変数 その他の参考資料
16.Ansible の役割
転載元: https://blog.csdn.net/weixin_48981270/article/details/117756914
16.1. Ansible ロールの概要
役割 Ansible であれ、saltstack であれ、ワンクリック デプロイメントを作成する場合、すべてのステップを 'スクリプト' ファイルに記述することは不可能です。異なる作業モジュールを分離して分離する必要があるのは間違いありません。ロールのディレクトリ構造はより明確であるため、ロールの公式推奨を使用する必要があります。
例: 以前、すべての基本的な最適化プロジェクトを作成するには、base.yml を作成することをお勧めしました。実際、すべてをその中に入れるのは非常に無味乾燥です。これらすべての関数と、それを使用する必要のあるユーザーをすべて分離してはどうでしょうか。それを呼び出すだけです。
提案: 役割ごとにタスクを 1 つだけ使用するのが最善です。これは呼び出しに便利であり、適切な分離を実現できます。(SOA)
16.2. ディレクトリ構造の作成
[root@node4 workspace]# mkdir nginx/{tasks,files,templates,vars,handlers,meta} -p
[root@node4 workspace]# ls
nginx
[root@node4 workspace]# tree nginx/
nginx/
|-- files
|-- handlers
|-- meta
|-- tasks
|-- templates
`-- vars
6 directories, 0 files
[root@node4 workspace]# ls
nginx
[root@node4 workspace]# rm -rf nginx
[root@node4 workspace]# ansible-galaxy init nginx (使用命令的时候创建)
- Role nginx was created successfully
[root@node4 workspace]# ll
total 0
drwxr-xr-x 1 root root 4096 10月 27 18:45 nginx
[root@node4 workspace]# tree
.
`-- nginx
|-- defaults
| `-- main.yml
|-- files
|-- handlers
| `-- main.yml
|-- meta
| `-- main.yml
|-- README.md
|-- tasks
| `-- main.yml
|-- templates
|-- tests
| |-- inventory
| `-- test.yml
`-- vars
`-- main.yml
9 directories, 8 files
ディレクトリ構造の説明:
[root@m01 roles]# tree nginx
nginx #项目目录名称
├── defaults #默认的变量(优先级很低)
│ └── main.yml
├── files #存放文件,使用copy模块时自动获取
├── handlers #存放触发器的配置
│ └── main.yml
├── meta #依赖的服务,执行该项目时先执行其他的项目
│ └── main.yml
├── README.md
├── tasks #默认执行的playbook
│ └── main.yml
├── templates #存放jinja2模板,使用template模块时自动获取
├── tests
│ ├── inventory
│ └── test.yml
└── vars #存放变量
└── main.yml
16.3. Ansible ロールの依存関係
roles
ロールを使用するときに、他のロールを自動的にインポートできます。ロールの依存関係は、roles ディレクトリの meta/main.yml ファイルに保存されます。
例: wordpress をプッシュして解凍します。前提条件として、nginx と php をインストールし、wordpress ページを実行するサービスを実行する必要があります。このとき、wordpress のロールで nginx と php に依存するロールを定義できます。
[root@m01 roles]# vim /etc/ansible/roles/wordpress/meta/main.yml
dependencies:
- {
role: nginx }
- {
role: php }
メタディレクトリに main.yml ファイルが記述されている場合、Ansible はメタディレクトリの main.yml ファイルにある依存関係ファイルを自動的に実行し、上図のように、nginx と php のインストールを最初に実行します。
17. その他の参考文献
17.1. プレイブックの参照
https://blog.51cto.com/u_13630803/2154192
https://www.cnblogs.com/yanjieli/p/10969299.html
17.2.Ansible の事実
https://www.cnblogs.com/lxmhhy/p/6813953.html
https://blog.csdn.net/woshizhangliang999/article/details/105759379
https://www.cnblogs.com/zhanglianghaha/p/12776236。 html
https://www.cnblogs.com/nb-blog/p/10565658.html
https://www.codercto.com/a/60267.html
17.3. 判決時の判決文
https://blog.csdn.net/a13568hki/article/details/103874588
https://www.jianshu.com/p/b172100de444
http://www.linuxboy.net/ansiblejc/147138.html
https://www .cnblogs.com/gaoyuechen/p/7776373.html
17.4.with_items
http://www.linuxe.cn/post-279.html
https://blog.csdn.net/weixin_34116110/article/details/92813078
17.5. ansible jinja テンプレート
https://blog.csdn.net/weixin_48981270/article/details/117756914
https://www.cnblogs.com/yxh168/p/14822773.html
https://blog.csdn.net/weixin_43384009/article/details/ 105301811
https://www.cnblogs.com/yang-dan/p/12091656.html
https://www.jianshu.com/p/cceca6036a51
https://blog.csdn.net/hanguofei/article/details/102555314
17.6. ansible ロール ロール
https://www.pianshen.com/article/73421469885/
https://blog.csdn.net/woshizhangliang999/article/details/106005990
https://www.jianshu.com/p/157ed21bf47d
https://blog. 51cto.com/u_13769014/2122388
https://blog.51cto.com/steed/2436930
https://www.pianshen.com/article/4058846828/
http://t.zoukankan.com/nineep-p-9065874。 html
17.7. 変数に関するその他の参考資料
https://www.cnblogs.com/mauricewei/p/10054300.html
https://www.cnblogs.com/f-ck-need-u/p/7571974.html
https://www.cnblogs.com/ deny/p/12394956.html
https://www.zsythink.net/archives/2655/