Open mehdibn opened 2 years ago
Having an all
folder and does not follow the convention <service>_[component_]<action>
.
This convention helps for automatic lookup in case of directories split as you present.
You can split the node name on the underscore, and guess the folder structure:
Here's a couple of examples:
hdfs_init
: playbooks/hdfs/init.yml
hdfs_namenode_init
: playbooks/hdfs/namenode/init.yml
Without an all
folder, you know that the leaf of the path is always a .yml
file and present in the component/service name folder
With an all
folder, you create a special rule for services that their playbooks location must not represent the name of the node, and as such, making the keyword all
a special case which can complicate things.
I would rather have: ├── hdfs │ ├── datanode │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ ├── journalnode │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ ├── namenode │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ ├── ranger-plugin │ │ ├── config.yml │ │ └── install.yml │ ├── config.yml │ ├── install.yml │ ├── kerberos.yml │ ├── restart.yml │ ├── ssl-tls.yml │ ├── start.yml │ └── stop.yml
P.S.: As you can see, we created the convention to be able to split the playbook folder layout, but we decided to keep a flat layout for now. It's a good thing you bring this up now, as it was an item to be rediscussed later.
An other point is that the dependency on nodes is reversed from the playbooks. The node hdfs_init
depends on hdfs_namenode_init
, hdfs_journalnode_init
... And we do not want in tdp-lib
an hdfs_init.yml
playbook that will call all those playbooks, but we want the lib to call the playbooks in the order of the graph.
In my opinion, the actual all.yml needs to be kept in order to deploy cluster without dag.
I think, if we put all "meta" playbooks, the playbooks not used by tdp-lib
in the same directories than playbooks used by tdp-lib
it will be harder to understand what playbooks the lib is using.
I propose to have a all
directory with all "meta" playbooks inside with the same directories tree as the "normal" playbooks directory. If we generate the "meta" playbooks with tdp-lib
we just have to remove the all
directory and tdp-lib
can generate it.
├── all
│ ├── config.yml # Run config for all services
│ ├── hdfs
│ │ ├── config.yml # Run config for all component for hdfs
│ │ ├── install.yml
│ │ ├── kerberos.yml
│ │ ├── restart.yml
│ │ ├── ssl-tls.yml
│ │ ├── start.yml
│ │ └── stop.yml
│ ├── install.yml # Run install for all services
│ ├── kerberos.yml
│ ├── restart.yml
│ ├── ssl-tls.yml
│ ├── start.yml
│ └── stop.yml
└── hdfs
├── datanode
│ ├── config.yml # Actual playbook used by "tdp-lib" to run config for hdfs datanode
│ ├── install.yml
│ ├── kerberos.yml
│ ├── restart.yml
│ ├── ssl-tls.yml
│ ├── start.yml
│ └── stop.yml
├── journalnode
│ ├── config.yml
│ ├── install.yml
│ ├── kerberos.yml
│ ├── restart.yml
│ ├── ssl-tls.yml
│ ├── start.yml
│ └── stop.yml
├── namenode
│ ├── config.yml
│ ├── install.yml
│ ├── kerberos.yml
│ ├── restart.yml
│ ├── ssl-tls.yml
│ ├── start.yml
│ └── stop.yml
└── ranger-plugin
├── config.yml
└── install.yml
Could you explain what the "meta" playbooks do? What are the differences with the playbooks used by tdp-lib?
"meta" playbooks is for manual usage of tdp-collection
without tdp-lib
In the case, the "meta" playbooks need only import the playbooks used by "tdb-lib". We can simplify the all directory structure.
The goal is to have a playbook to run config
for all services and another playbook config
for all component inside hdfs
for example.
TO_VALIDATE with @leopaul36 @rpignolet @gboutry @nschung before implementation:
I propose this design for the tdp
playbooks
that will be used bytdp-lib
:/tdp/playbooks-v2
One level : . ├── all ├── clients ├── hbase ├── hdfs ├── hive ├── knox ├── phoenix ├── ranger ├── spark ├── yarn └── zookeeper
Two levels : . ├── all │ ├── config.yml │ ├── install.yml │ ├── kerberos.yml │ ├── restart.yml │ ├── ssl-tls.yml │ ├── start.yml │ └── stop.yml ├── clients │ ├── all │ ├── hadoop-client │ ├── hbase-client │ ├── hive-client │ ├── phoenix-client │ ├── phoenix-queryserver-client │ └── spark-client ├── hbase │ ├── all │ ├── master │ ├── ranger-plugin │ ├── regionserver │ └── rest ├── hdfs │ ├── all │ ├── datanode │ ├── journalnode │ ├── namenode │ └── ranger-plugin ├── hive │ ├── all │ ├── hiveserver2 │ ├── ranger-plugin │ └── tez ├── knox │ ├── all │ ├── gateway │ └── ranger-plugin ├── phoenix │ ├── all │ ├── coprocessor │ └── queryserver-daemon ├── ranger │ ├── admin │ ├── all │ └── usersync ├── spark │ ├── all │ └── historyserver ├── yarn │ ├── all │ ├── apptimelineserver │ ├── nodemanager │ ├── ranger-plugin │ └── resourcemanager └── zookeeper ├── all └── server
Three levels: . ├── all │ ├── config.yml │ ├── install.yml │ ├── kerberos.yml │ ├── restart.yml │ ├── ssl-tls.yml │ ├── start.yml │ └── stop.yml ├── clients │ ├── all │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ └── ssl-tls.yml │ ├── hadoop-client │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ └── ssl-tls.yml │ ├── hbase-client │ │ ├── config.yml │ │ ├── install.yml │ │ └── kerberos.yml │ ├── hive-client │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ └── ssl-tls.yml │ ├── phoenix-client │ │ ├── config.yml │ │ └── install.yml │ ├── phoenix-queryserver-client │ │ ├── config.yml │ │ └── install.yml │ └── spark-client │ ├── config.yml │ ├── install.yml │ └── kerberos.yml ├── hbase │ ├── all │ │ ├── config.yml │ │ ├── hdfs_init.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ ├── master │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ ├── ranger-plugin │ │ ├── config.yml │ │ └── install.yml │ ├── regionserver │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ └── rest │ ├── config.yml │ ├── install.yml │ ├── kerberos.yml │ ├── restart.yml │ ├── ssl-tls.yml │ ├── start.yml │ └── stop.yml ├── hdfs │ ├── all │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ ├── datanode │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ ├── journalnode │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ ├── namenode │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ └── ranger-plugin │ ├── config.yml │ └── install.yml ├── hive │ ├── all │ │ ├── config.yml │ │ ├── hdfs_init.yml │ │ ├── init_schema.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ ├── hiveserver2 │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ ├── ranger-plugin │ │ ├── config.yml │ │ └── install.yml │ └── tez │ ├── config.yml │ └── install.yml ├── knox │ ├── all │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ ├── gateway │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ └── ranger-plugin │ ├── config.yml │ └── install.yml ├── phoenix │ ├── all │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── ranger_policy.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ ├── coprocessor │ │ └── install.yml │ └── queryserver-daemon │ ├── config.yml │ ├── install.yml │ ├── kerberos.yml │ ├── restart.yml │ ├── ssl-tls.yml │ ├── start.yml │ └── stop.yml ├── ranger │ ├── admin │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ ├── all │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ └── usersync │ ├── config.yml │ ├── install.yml │ ├── kerberos.yml │ ├── restart.yml │ ├── ssl-tls.yml │ ├── start.yml │ └── stop.yml ├── spark │ ├── all │ │ ├── config.yml │ │ ├── hdfs_init.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ └── historyserver │ ├── config.yml │ ├── install.yml │ ├── kerberos.yml │ ├── restart.yml │ ├── ssl-tls.yml │ ├── start.yml │ └── stop.yml ├── yarn │ ├── all │ │ ├── config.yml │ │ ├── hdfs_init.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ ├── apptimelineserver │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ ├── nodemanager │ │ ├── config.yml │ │ ├── install.yml │ │ ├── kerberos.yml │ │ ├── restart.yml │ │ ├── ssl-tls.yml │ │ ├── start.yml │ │ └── stop.yml │ ├── ranger-plugin │ │ ├── config.yml │ │ └── install.yml │ └── resourcemanager │ ├── config.yml │ ├── install.yml │ ├── kerberos.yml │ ├── restart.yml │ ├── ssl-tls.yml │ ├── start.yml │ └── stop.yml └── zookeeper ├── all │ ├── config.yml │ ├── install.yml │ ├── kerberos.yml │ ├── restart.yml │ ├── ssl-tls.yml │ ├── start.yml │ └── stop.yml └── server ├── config.yml ├── install.yml ├── kerberos.yml ├── restart.yml ├── ssl-tls.yml ├── start.yml └── stop.yml