1.Ansible réalise la gestion:
Ad-Hoc -------------------- Utilisez la commande ansible pour terminer directement la gestion, principalement utilisée pour les scénarios d'utilisation des commandes temporaires
------------ ------- Le script Ansible, principalement utilisé dans les scénarios de projet à grande échelle, nécessite une planification préalable
2. Exécutez une commande ad hoc (ad hoc):
2-1: Grâce à la ligne de commande, des commandes temporaires peuvent être utilisées pour tester et modifier rapidement sans écrire un livre de jeu. Concis et efficace
Processus d'exécution de la commande Ansible:
1. Chargez votre propre fichier de configuration
2. Chargez le fichier du module correspondant
3. Générez le fichier py temporaire correspondant du module via ansible, et transférez le fichier à l'utilisateur d'exécution correspondant HOME / .ansible / temp du serveur distant /tmp/ansible-tmp-number/xxx.py file
4. Exécutez le fichier + x
5. Exécutez et renvoyez le résultat
6. Supprimez le fichier temporaire, quittez
2-2: Modules communs utilisés par les commandes temporaires:
文件模块:
-copy 将本地文件复制到受管主机
-file 设置文件的权限和其他属性
-lineinfile 确保特定行是否在文件中
-synchronize 使用rsync同步内容
系统模块:
-firewalld 使用firewalld管理任意端口和服务
用firewalld 管理任意端口和服务
-reboot 重启
-service 管理服务
-user 添加、删除和管理用户账户
Net Tools模块:
-get_url 通过http、https、或者ftp下载文件
nmcli 管理网络
-uri 与web服务交互
2-3 Paramètres couramment utilisés de Ad-hoc:
3. Playbook dans Ansible:
3-1 Playbook: Il s'agit d'une liste de tâches répétables écrites en langage de balisage YAML.
Le format 3-2.yaml utilise généralement .yml comme extension
ansible-playbook xxx.yml pour exécuter le playbook (nécessite un inventaire et ansible.cfg dans l'environnement) Remarque: il doit y avoir des tâches et des tâches dans le playbook, et entre jouer et jouer -
3-3 La sortie par défaut d'ansible-playbook ne fournit pas d'informations détaillées sur l'exécution des tâches.
Le paramètre -v fournit quatre niveaux: -v (afficher les résultats de la tâche) -vv (afficher les résultats de la tâche et la configuration de la tâche) -vvv (contient des informations de connexion avec l'hôte géré) -vvvv (ajouter des détails supplémentaires relatifs au plug-in de connexion Option Degré) (y compris l'utilisateur utilisé pour exécuter le script sur l'hôte géré et le script exécuté)
3-4. Il est préférable d'effectuer une vérification de la syntaxe avant d'exécuter playbool.
Ansible-playbook --syntax-check webserver.yml
a une erreur de syntaxe et l'emplacement de l'erreur ERROR! S
3-5.yaml n'a pas d'exigences strictes en matière d'indentation, mais il existe deux principes de base:
1). Les éléments de données au même niveau dans la même hiérarchie doivent avoir le même retrait (jouer lui-même est une collection de paires clé-valeur, Les clés dans la même lecture doivent utiliser le même retrait); après la réunion: il doit y avoir un espace ""
2). Si l'élément est un enfant d'un autre élément, le retrait doit être supérieur à l'élément parent. Le format est le suivant:
3-6: Commandes d'exécution courantes dans le playbook:
ansible-playbook xxx.yml ... ansible执行playbook
--check|-C ##检测
--syntax-check ##检测语法
--list-hosts ##列出hosts
--list-tags ##列出tag
--list-tasks ##列出task
--limit ##指定执行主机
-v -vv ##显示过程
4. Modifiez le format d'indentation de yaml dans vimrc:
5. Variables dans ansible:
5-1: Rôle:
remplacer certaines valeurs du playbook par des variables, simplifiant ainsi l'écriture du playbook
<1. Les variables peuvent être réutilisées par playbook
<2 . Les variables peuvent être définies pour les hôtes et les groupes d'hôtes dans la liste
<3. Les variables peuvent être définies à l' aide de faits et de fichiers externes, ou dans la ligne de commande
<4. Pourquoi le mot-clé register est-il utilisé? Sortie de la commande de capture
<5. Utilisation du
coffre-fort ansible <6. Ansible fact est une variable détectée automatiquement à partir de l'hôte géré
5-2: La dénomination des variables
ne peut contenir que des chiffres, des traits de soulignement et les lettres
ne peuvent commencer que par des traits de soulignement ou des lettres
5-3: Niveau variable
Global:
Paly défini à partir de la ligne de commande ou du fichier de configuration: Set en lecture et structures associées
Hôte: Tâches collectées ou enregistrées par la liste, faits
Réglage de priorité variable: la
plage étroite a priorité sur la plage étendue
5-4: Méthodes courantes d'utilisation des variables:
5-4-1: Définir des variables dans le bloc vars au début du playbook (méthode courante)
5-4-2: Ajoutez directement le paramètre -e pour définir la variable dans la ligne de commande ad-hoc:
test ansible -e «nom d'utilisateur = westos»;
5-4-3: Créez un fichier de variables dans le même répertoire de niveau de ansible.cfg:
Faites attention à l'utilisation de guillemets doubles lors de l'appel de variables:
telles que: "{{username}}"
L'utilisation du template JINJA2:
Introduction:
Jinja2 est le prochain moteur de template largement utilisé pour Python.Son
idée de conception vient du moteur de template de Django,
et a développé sa syntaxe et une série de fonctions puissantes.
Le plus notable est l'ajout de l'exécution du bac à sable et de l'échappement automatique en option
Utilisez l'exemple:
---
- hosts: all
tasks:
- name: system info
template:
src: hostinfo.j2
dest: /tmp/hostinfo
Remarque: importez d'autres playbooks ou tâches:
- import_playbook: task.yml
6. Faits de gestion dans Ansible:
Collectez les informations de fait:
collect_acts; vous pouvez utiliser rassembler_acts: no | false pour fermer la collection;
utilisez les noms de variables système, qui sont communs comme suit:
hostname: {
{
ansible_facts['hostname'] }}
ip: {
{
ansible_facts["eth0"]["ipv4"]["address"] }}
DNS: {
{
ansible_facts['dns']['nameservers'][-1] }}
vda1: {
{
ansible_facts['devices']['vda']['partitions']['vda1']['size'] }}
kernel: {
{
ansible_facts['kernel'] }}
Afficher les informations factuelles: ansible test (list) -m setup | less
7. contrôle de cryptage d'Ansible:
创建建立文件
1.
ansible-vault create westos
2.
vim westos-vault
lee
ansible-vault create --vault-password-file=westos-valut westos
#加密现有文件
ansible-vault encrypt test
#查看加密文件
ansible-vault view westos
ansible-vault view --vault-password-file=westos-valut westos
#编辑加密文件
ansible-vault edit westos1
ansible-vault edit --vault-password-file=westos-valut westos
##解密文件
ansible-vault decrypt westos ##文件永久解密
ansible-vault decrypt westos --output=linux ##文件解密保存为linux
##更改密码
ansible-vault rekey westos1
ansible-vault rekey westos1 --new-vault-password-file=key1
#playbook#
ansible-playbook apache_install.yml --ask-vault-pass