Ad-hoc, playbook, variables, cryptage dans Ansible

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:

Insérez la description de l'image ici
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:
Insérez la description de l'image ici

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:

Insérez la description de l'image ici

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)
Insérez la description de l'image ici

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:

Insérez la description de l'image ici

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

Je suppose que tu aimes

Origine blog.csdn.net/lb1331/article/details/111998681
conseillé
Classement