ansible实战

tags:在某个module下打一个tags标签,即可在执行时使用--tags=xx或--skip-tags=xxx执行或跳过执行该tags对应的步骤,如--tags="xx,xxx,xxxx"

https://www.cnblogs.com/dachenzi/p/8916521.html

become: yes,提权,即升级权限至一个需要的账户级别,默认是sudo和root,当需要指定时可单独写

 

以后再也不敢说会使用ansible了,灵活用法如下:

1.定义主机的文件可使用-i指定路径;

2.参数文件group_vars如果跟随主机文件同一目录,那么在yml所在的目录执行时依旧可以读取,牛逼

3.当yml所在目录和主机文件所在目录都有group_vars文件夹时,变量的读取顺序是先yml所在的group_vars,然后是主机所在的group_vars。第一次发现这个灵活的用法,之前一直不知道

4.roles目录:roles/xx/tasks/main.yml, 长时间不写就会忘

 

好资源:https://www.ansible.com/resources/webinars-training

ansible -i 后接一个py脚本生成的主机列表,json格式。

定义主机的方式:http://allandenot.com/devops/2015/01/16/ansible-with-multiple-inventory-files.html

1.指定主机文件

2.指定某个文件夹,文件夹下面有这些主机文件,是否必须是命名为inventory有待确认。

3.指定的文件夹下既有动态的,又有静态的,这时候会全部都执行。所谓动态的就是py类文件,静态就是inventory这类的ini文件

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

ansible配置使用不同的key进行授信,引用自博文https://blog.csdn.net/wanglei_storage/article/details/52852957

1)ANSIBLE_CONFIG:首先,Ansible命令会检查环境变量,及这个环境变量将指向的配置文件 
2)./ansible.cfg:其次,将会检查当前目录下的ansible.cfg配置文件 
3)~/.ansible.cfg:再次,将会检查当前用户home目录下的.ansible.cfg配置文件 
4)/etc/ansible/ansible.cfg:最后,将会检查在用软件包管理工具安装Ansible时自动产生的配置文件
 

 

ansible授信方式的顺序:

默认:

在哪里配置:

优先级:

 

inventory: 主机参数的配置

 

>>>>>>>>>>>>>>>>>>>>>>

同一个playbook内针对多个不同的主机执行:

- hosts: xxxx

  roles:

    - xxx

  tasks:

    - name: xxx

       xxx

在每个hosts组内都可以单独执行自己的handler

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>

参数执行顺序:

  1. Vars set on the command line -e foo=set_on_cmd_line
  2. Vars set in the vars_files: block in the play
  3. Vars set in the vars: block in the play
  4. Vars set in host_vars/
  5. Vars set in group_vars/
  6. Role default vars roles/.../defaults/main.yml

按照上述的顺序调用参数

 

ansible 当前案例总结:

1.一个yml内可以有多个hosts。

2.每个hosts下可以同时又tasks和roles。

3.每个hosts内的tag只对task起作用,对roles不起作用

4.在group_vars内指定anisble的链接变量,但是要在全局里指定world——variable

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>

ansible命令:

ansible-playbook -i xx/xxx/xx/xyz xxxx.yml -t xxtags,xytags --ask-vault-pass -v --check,其中,ask-vault-pass是询问是否手动解密。--check是不执行,只是检查一遍语法和网络。-t是执行带有某个或某几个tags的任务。inventory的路径可以是任意的,只要使用-i指定即可。host的pubkey的路径可以通过groupvar里的参数指定。

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

ansible经验:

yml开头有三个杠   ---

判断系统 ansible_os_family

判断和 列表when: not ansible_os_family in ["RedHat", "Windows"]

参数文件里的列表

这是一个dict,读取的时候可以使用java_version["prefix"]

java_version:
  prefix: 1
  major: 8
  minor: 0
  update: 201
  build: "09"

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

ansible部署场景:

java:

1.使用get_url下载,加headers='Cookie:gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie'

2.老外真博学和严谨,感觉国内技术功底和严谨性,输了。不专精。java的环境变量的配置,是在/etc/environment和/etc/profile同时配置的,与/etc/profile啥区别???https://www.cnblogs.com/x_wukong/p/4771316.html

3.修改文件的方法

lineinfile:
    dest=/etc/profile
    regexp="^export PATH=\$JAVA_HOME"
    state=present
    line="export PATH=$JAVA_HOME/bin:$PATH"

4.使用alternatives 整合所有的java的软链接,不懂

windows中安装:先检查路径下是否有java,然后执行下载脚本script: "down.ps1 '{{ 变量 1}}' '{{变量2}}'",然后执行安装脚本,注意,使用的是raw:raw: '{{ exe在的位置 }} /s INSTALLDIR={{ java_win_jdk_home }}' 远程主机上直接执行exe安装软件。第三步是配置java环境script: "win_env_workaround.ps1 'JAVA_HOME' '{{ java_win_jdk_home }}'"

 

git:

jenkins:

 

 

新知识点:配置指向本地公钥执行远程主机

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值