(command.CommandList
  children: [
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<errexit>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<nounset>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<pipefail>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <hostnamectl>
      more_env: []
      words: [{<hostnamectl>} {<set-hostname>} {(${ Id.VSub_Name MASTER_NAME)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'if_to_edit='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'if_to_edit='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'if_to_edit='> name:if_to_edit)
          op: assign_op.Equal
          rhs: {(DQ )}
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      left: <Id.KW_DLeftBracket '[['>
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_EqualTilde
                          left: 
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Simple
                                      blame_tok: <grep>
                                      more_env: []
                                      words: [{<grep>} {(SQ <VERSION_ID>)} {<'/etc/os-release'>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                          right: {<Id.Lit_Other '^'> <VERSION_ID> <Id.Lit_Other '='> <23>}
                        )
                      right: <Id.Lit_DRightBracket ']]'>
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'NETWORK_CONF_PATH='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'NETWORK_CONF_PATH='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'NETWORK_CONF_PATH='>
                      name: NETWORK_CONF_PATH
                    )
                  op: assign_op.Equal
                  rhs: {<'/etc/sysconfig/network-scripts/'>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'if_to_edit='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'if_to_edit='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'if_to_edit='> name:if_to_edit)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <find>
                                more_env: []
                                words: [
                                  {<find>}
                                  {(${ Id.VSub_Name NETWORK_CONF_PATH) <ifcfg-> <Id.Lit_Star '*'>}
                                ]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <xargs>
                                more_env: []
                                words: [{<xargs>} {<grep>} {<-l>} {<VAGRANT-BEGIN>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Sentence
              child: 
                (command.ForEach
                  keyword: <Id.KW_For for>
                  iter_names: [if_conf]
                  iterable: (for_iter.Words words:[{(${ Id.VSub_Name if_to_edit)}])
                  semi_tok: <Id.Op_Semi _>
                  body: 
                    (command.DoGroup
                      left: <Id.KW_Do do>
                      children: [
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <grep>
                              more_env: []
                              words: [
                                {<grep>}
                                {<-q>}
                                {<Id.Lit_Other '^'> <Id.Lit_VarLike 'NM_CONTROLLED='>}
                                {(${ Id.VSub_Name if_conf)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(SQ <'NM_CONTROLLED=no'>)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {(${ Id.VSub_Name if_conf)}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                        (command.Simple
                          blame_tok: <sed>
                          more_env: []
                          words: [
                            {<sed>}
                            {<-i>}
                            {(SQ <'s/#^NM_CONTROLLED=.*/NM_CONTROLLED=no/'>)}
                            {(${ Id.VSub_Name if_conf)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      right: <Id.KW_Done done>
                    )
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <systemctl>
              more_env: []
              words: [{<systemctl>} {<restart>} {<network>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [85 111]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'NETWORK_IF_NAME='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'NETWORK_IF_NAME='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NETWORK_IF_NAME='> name:NETWORK_IF_NAME)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Pipeline
                    children: [
                      (command.Simple
                        blame_tok: <echo>
                        more_env: []
                        words: [{<echo>} {(${ Id.VSub_Name if_to_edit)}]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <awk>
                        more_env: []
                        words: [{<awk>} {<-F->} {(SQ <'{ print $3 }'>)}]
                        redirects: []
                        do_fork: T
                      )
                    ]
                    ops: [<Id.Op_Pipe _>]
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      left: <Id.KW_DLeftBracket '[['>
                      expr: 
                        (bool_expr.Unary
                          op_id: Id.BoolUnary_z
                          child: {(DQ ($ Id.VSub_DollarName NETWORK_IF_NAME))}
                        )
                      right: <Id.Lit_DRightBracket ']]'>
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'NETWORK_IF_NAME='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'NETWORK_IF_NAME='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'NETWORK_IF_NAME='>
                      name: NETWORK_IF_NAME
                    )
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name DEFAULT_NETWORK_IF_NAME)}
                )
              ]
              redirects: []
            )
          ]
          spids: [242 255]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ForExpr
      keyword: <Id.KW_For for>
      init: 
        (arith_expr.BinaryAssign
          op_id: Id.Arith_Equal
          left: ($ Id.Lit_ArithVarLike i)
          right: {<Id.Lit_Digits 0>}
        )
      cond: 
        (arith_expr.Binary
          op_id: Id.Arith_Less
          left: ($ Id.Lit_ArithVarLike i)
          right: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name NODE_NAMES>
                var_name: NODE_NAMES
                prefix_op: <Id.VSub_Pound '#'>
                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:($ Id.Lit_ArithVarLike i))
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'node='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'node='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'node='> name:node)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name NODE_NAMES>
                        var_name: NODE_NAMES
                        bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName i)})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ip='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ip='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ip='> name:ip)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name NODE_IPS>
                        var_name: NODE_IPS
                        bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName i)})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<Id.KW_Bang '!'>}
                                {
                                  (DQ 
                                    (CommandSub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (command.Simple
                                              blame_tok: <cat>
                                              more_env: []
                                              words: [{<cat>} {<'/etc/hosts'>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <grep>
                                              more_env: []
                                              words: [{<grep>} {($ Id.VSub_DollarName node)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          ops: [<Id.Op_Pipe _>]
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Adding '> ($ Id.VSub_DollarName node) <' to hosts file'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ ($ Id.VSub_DollarName ip) <' '> ($ Id.VSub_DollarName node))}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/hosts'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [316 339]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(DQ <'127.0.0.1 localhost'>)}]
      redirects: [(Redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<'/etc/hosts'>})]
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(DQ ($ Id.VSub_DollarName MASTER_IP) <' '> ($ Id.VSub_DollarName MASTER_NAME))}]
      redirects: [(Redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<'/etc/hosts'>})]
      do_fork: T
    )
    (command.Simple
      blame_tok: <enable-accounting>
      more_env: []
      words: [{<enable-accounting>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <prepare-package-manager>
      more_env: []
      words: [{<prepare-package-manager>}]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {(DQ (${ Id.VSub_Name NETWORK_PROVIDER))}
                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                        {(DQ <kubenet>)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <provision-network-master>
              more_env: []
              words: [{<provision-network-master>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [402 422]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <write-salt-config>
      more_env: []
      words: [{<write-salt-config>} {<kubernetes-master>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'known_tokens_file='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'known_tokens_file='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'known_tokens_file='> name:known_tokens_file)
          op: assign_op.Equal
          rhs: {(DQ <'/srv/salt-overlay/salt/kube-apiserver/known_tokens.csv'>)}
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      left: <Id.KW_DLeftBracket '[['>
                      expr: 
                        (bool_expr.LogicalNot
                          child: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_f
                              child: {(DQ (${ Id.VSub_Name known_tokens_file))}
                            )
                        )
                      right: <Id.Lit_DRightBracket ']]'>
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<-p>} {<'/srv/salt-overlay/salt/kube-apiserver'>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'known_tokens_file='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'known_tokens_file='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'known_tokens_file='>
                      name: known_tokens_file
                    )
                  op: assign_op.Equal
                  rhs: {(DQ <'/srv/salt-overlay/salt/kube-apiserver/known_tokens.csv'>)}
                )
              ]
              redirects: []
            )
            (command.Subshell
              left: <Id.Op_LParen _>
              child: 
                (command.CommandList
                  children: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <umask>
                          more_env: []
                          words: [
                            {<umask>}
                            {<Id.Lit_VarLike 'u='> <rw> <Id.Lit_Comma ','> <Id.Lit_VarLike 'go='>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {(DQ ($ Id.VSub_DollarName KUBELET_TOKEN) <',kubelet,kubelet'>)}
                          ]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {($ Id.VSub_DollarName known_tokens_file)}
                            )
                          ]
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {(DQ ($ Id.VSub_DollarName KUBE_PROXY_TOKEN) <',kube_proxy,kube_proxy'>)}
                          ]
                          redirects: [
                            (Redir
                              op: <Id.Redir_DGreat '>>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {($ Id.VSub_DollarName known_tokens_file)}
                            )
                          ]
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ ($ Id.VSub_DollarName KUBE_BEARER_TOKEN) <',admin,admin'>)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName known_tokens_file)}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                )
              right: <Id.Right_Subshell _>
              redirects: []
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<-p>} {<'/srv/salt-overlay/salt/kubelet'>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'kubelet_auth_file='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'kubelet_auth_file='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'kubelet_auth_file='>
                      name: kubelet_auth_file
                    )
                  op: assign_op.Equal
                  rhs: {(DQ <'/srv/salt-overlay/salt/kubelet/kubernetes_auth'>)}
                )
              ]
              redirects: []
            )
            (command.Subshell
              left: <Id.Op_LParen _>
              child: 
                (command.CommandList
                  children: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <umask>
                          more_env: []
                          words: [
                            {<umask>}
                            {<Id.Lit_VarLike 'u='> <rw> <Id.Lit_Comma ','> <Id.Lit_VarLike 'go='>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'{'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                            <BearerToken> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <': '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) ($ Id.VSub_DollarName KUBELET_TOKEN) 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <', '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <Insecure> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <': true }'>
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName kubelet_auth_file)}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                )
              right: <Id.Right_Subshell _>
              redirects: []
            )
            (command.Simple
              blame_tok: <create-salt-kubelet-auth>
              more_env: []
              words: [{<create-salt-kubelet-auth>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <create-salt-kubeproxy-auth>
              more_env: []
              words: [{<create-salt-kubeproxy-auth>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'service_accounts='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'service_accounts='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'service_accounts='>
                      name: service_accounts
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (ShArrayLiteral
                        left: <Id.Op_LParen _>
                        words: [
                          {(DQ <'system:scheduler'>)}
                          {(DQ <'system:controller_manager'>)}
                          {(DQ <'system:logging'>)}
                          {(DQ <'system:monitoring'>)}
                          {(DQ <'system:dns'>)}
                        ]
                        right: <Id.Right_ShArrayLiteral _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [account]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (DQ 
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name service_accounts>
                          var_name: service_accounts
                          bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                  ]
                )
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'token='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'token='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'token='> name:token)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <dd>
                                        more_env: []
                                        words: [
                                          {<dd>}
                                          {<Id.Lit_VarLike 'if='> <'/dev/urandom'>}
                                          {<Id.Lit_VarLike 'bs='> <128>}
                                          {<Id.Lit_VarLike 'count='> <1>}
                                        ]
                                        redirects: [
                                          (Redir
                                            op: <Id.Redir_Great '2>'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<'/dev/null'>}
                                          )
                                        ]
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <base64>
                                        more_env: []
                                        words: [{<base64>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <tr>
                                        more_env: []
                                        words: [{<tr>} {<-d>} {(DQ <'=+/'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <dd>
                                        more_env: []
                                        words: [
                                          {<dd>}
                                          {<Id.Lit_VarLike 'bs='> <32>}
                                          {<Id.Lit_VarLike 'count='> <1>}
                                        ]
                                        redirects: [
                                          (Redir
                                            op: <Id.Redir_Great '2>'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<'/dev/null'>}
                                          )
                                        ]
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ (${ Id.VSub_Name token) <','> (${ Id.VSub_Name account) <','> 
                            (${ Id.VSub_Name account)
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ (${ Id.VSub_Name known_tokens_file))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          spids: [449 466]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <readonly>
      more_env: []
      words: [
        {<readonly>}
        {<Id.Lit_VarLike 'BASIC_AUTH_FILE='> 
          (DQ <'/srv/salt-overlay/salt/kube-apiserver/basic_auth.csv'>)
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {<Id.KW_Bang '!'>}
                        {<-e>}
                        {(DQ (${ Id.VSub_Name BASIC_AUTH_FILE))}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<-p>} {<'/srv/salt-overlay/salt/kube-apiserver'>}]
              redirects: []
              do_fork: T
            )
            (command.Subshell
              left: <Id.Op_LParen _>
              child: 
                (command.CommandList
                  children: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <umask>
                          more_env: []
                          words: [{<umask>} {<077>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ (${ Id.VSub_Name MASTER_PASSWD) <','> (${ Id.VSub_Name MASTER_USER) 
                            <',admin'>
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ (${ Id.VSub_Name BASIC_AUTH_FILE))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                )
              right: <Id.Right_Subshell _>
              redirects: []
            )
          ]
          spids: [734 751]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Pipeline
                      negated: <Id.KW_Bang '!'>
                      children: [
                        (command.Simple
                          blame_tok: <which>
                          more_env: []
                          words: [{<which>} {<'/usr/libexec/cockpit-ws'>}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_AndGreat '&>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      ops: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <pushd>
              more_env: []
              words: [{<pushd>} {<'/etc/yum.repos.d'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <curl>
              more_env: []
              words: [
                {<curl>}
                {<-OL>}
                {<https> <Id.Lit_Colon ':'> 
                  <
'//copr.fedorainfracloud.org/coprs/g/cockpit/cockpit-preview/repo/fedora-23/msuchy-cockpit-preview-fedora-23.repo'
                  >
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dnf>
              more_env: []
              words: [
                {<dnf>}
                {<install>}
                {<-y>}
                {<cockpit>}
                {<cockpit-kubernetes>}
                {<docker>}
                {<socat>}
                {<ethtool>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <popd>
              more_env: []
              words: [{<popd>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <systemctl>
              more_env: []
              words: [{<systemctl>} {<enable>} {<cockpit.socket>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <systemctl>
              more_env: []
              words: [{<systemctl>} {<start>} {<cockpit.socket>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [799 811]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <install-salt>
      more_env: []
      words: [{<install-salt>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<run-salt> more_env:[] words:[{<run-salt>}] redirects:[] do_fork:T)
  ]
)